用户被分配到一个组 ID。有多个登录区域,例如:前端,后端和控制面板登录。
我想知道我应该将 LoginArea 保存在单独的表中还是其他方法?
例子:
tbl_user
UserID | firstName | Email | Password | LoginArea | GroupID
1 , Bill , email@email1.com , passwordhash344, Backend | 2
2 , Paul , email@email2.com , passwordhash123, Backend | 3
或
tbl_user
UserID | firstName | Email | Password | GroupID
tbl_group
GroupID | LoginArea | Group_Name
0 , Frontend , Customer
1 , Backend , Admin
2 , Backend , Staff
3 , Backend , Sales
20 , ControlPanel , Shop
//注意GroupID不是PK
所以如果我想登录后台,我需要先确保我在后台登录。像这样使用 SQL?
SELECT count(*) FROM members
WHERE email = 'emailhere' AND
password = 'password' AND
LoginArea = 'Backend'
这只是为了确保客户登录详细信息不会在后端登录区域起作用。
最佳答案
这里有一些事情需要考虑:
- 是否会出现您会有更多登录区域或只有 3 个登录区域的情况?
- 是否会出现属于一个组的用户需要对所有 3 个区域或 2 个区域具有登录访问权限的情况?
如果您对这两个问题的回答都是肯定的,那么进行第一个示例设计就有意义了。
tbl_user
UserID | firstName | Email | Password | LoginArea | GroupID
1 , Bill , email@email1.com , passwordhash344, Backend | 2
2 , Paul , email@email2.com , passwordhash123, Backend | 3
关于mysql - 多登录区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6385092/