多重登录区域



用户被分配到一个组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 

最新更新