我有这样的表格
员工
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 |
管理员
id | IdAdmin | username | password | phone_num |
1 | AM10000 | sim1 | 1234 | 9000010 |
2 | AM10001 | sim2 | luvcoding | 9000010 |
3 | AM10002 | sim3 | okaymate | 9000010 |
我如何使表技术人员和员工也成为用户,以便他们可以在登录表单中使用他们的信息作为用户名?另外,我希望技术人员和员工的每个ID(不是“自动增量”ID)都将成为用户名。
如何管理这样的数据库?
或者我应该在两个表中添加密码列? (员工和技术人员)
或者我应该像这样制作一张 table 吗?
(新)管理员
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 |
技术员和员工之间没有关系(独立表)
最佳答案
就您的情况而言,您最好将表格制作为标准化形式,如下所示:
员工
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 。
关于php - 从数据库中检查3个表,同时保留每个表的信息以验证登录表单php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45663109/