2017-08-13 14 views
0

我有这样检查从数据库中,而3台保持每个表的信息进行身份验证的登录表单PHP

员工

Id | IdEmployee | Employee | Address  | Phone_num | 
1 | EM10000  | Jack | wall st. | 9000010 | 
2 | EM10001  | Paul | elm st.  | 9000010 | 
3 | EM10002  | George | ex st . | 9000010 | 

技术员

id | IdTech  | TechName | Address  | phone_num | 
1 | TE10000  | Gabut | Hello st. | 9000010 | 
2 | TE10001  | Polnaref | coding st. | 9000010 | 
3 | TE10002  | Rafioli | stack st. | 9000010 | 

表Admin

id | IdAdmin  | username | password  | phone_num | 
1 | AM10000  | sim1 | 1234   | 9000010 | 
2 | AM10001  | sim2 | luvcoding | 9000010 | 
3 | AM10002  | sim3 | okaymate  | 9000010 | 

怎样使表技术员员工成为用户太多,所以他们可以在登录表单中使用其信息的用户名?另外,我希望每个Id(不是“AutoIncrement”ID)技术人员雇员将成为用户名。

如何管理这样的数据库?

或者我应该在两个表中添加密码列? (员工和技术人员)

或者我应该像这样做一张桌子?

(新)联系

id | Id   | username | password  | phone_num | 
1 | AM10000  | sim1 | 1234   | 9000010 | 
2 | AM10001  | sim2 | luvcoding | 9000010 | 
3 | AM10002  | sim3 | okaymate  | 9000010 | 
4 | AM10003  | EM10000 | test1  | NULL  | 
5 | AM10004  | EM10001 | test2  | NULL  | 
6 | AM10005  | EM10002 | test3  | NULL  | 
7 | AM10006  | TE10000 | 1234   | NULL  | 
8 | AM10007  | TE10001 | ok123  | NULL  | 

有技术员和员工(独立表)

回答

1

在你的情况,你会更好做的范式为您的表之间没有关系如下:

员工

IdEmployee | Employee | Address  | Phone_num 
EM10000  | Jack | wall st. | 9000010 
EM10001  | Paul | elm st.  | 9000010 
EM10002  | George | ex st . | 9000010 

技术员

IdEmployee | TechName 
TE10000 | Gabut 
TE10001 | Polnaref 

管理员

IdEmployee | Password 
TE10001  | hashed_pass1 
EM10002  | hashed_pass2 

这可以确保你没有复制数据,并确保您可以通过使用外键关联正确的表。

所以,如果您的管理员已IdAdmin“EM10002”,以获得与下面的查询该员工的密码:

// Will return a row with EM10002's password, which is 'hashed_pass2'. 
SELECT Password from Admins WHERE IdEmployee = EM10002 

这里是foreign key使用的另一个例子。

要了解标准化更多,看看this thread

+0

为什么技术员表有IdEmployee? – Gagantous

+0

@ gagantous我想你想包括你的技术人员作为员工?通过将员工ID连接到他们的技术ID,您可以在Employees表中访问他们的详细信息。因此,如果您想查找技术ID'TE10000'的地址,则连接到技术ID的员工ID将允许您访问他的地址。考虑员工标识链接到你的员工表。 – MinistryofChaps

+0

对不起,我会改变我的描述,因为技术员和员工是不同的表,没有任何关系(独立表)。所以他们只和管理员表有关系@MinistryofChaps – Gagantous

相关问题