2011-06-17 80 views
1

用戶被分配到組ID。有多個登錄區域,例如:前端,後端和控制面板登錄。多個登錄區域

我想知道我應該保持LoginArea在單獨的表或什麼是另一種方式?

例子:

tbl_user 
UserID | firstName | Email | Password | LoginArea | GroupID 

1 , Bill , [email protected] , passwordhash344, Backend | 2 
2 , Paul , [email protected] , 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 

//注意羣ID沒有PK

所以,如果我想登錄到後臺,我需要確保我上後端登錄第一。使用SQL這樣的東西?

SELECT count(*) FROM members 
    WHERE email = 'emailhere' AND 
    password = 'password' AND 
    LoginArea = 'Backend' 

這只是爲了確保客戶登錄細節不會在後端登錄區域工作。

回答

1

這裏要考慮的一些事情:

  • 將是有史以來有一個情況下,你將有更多的登錄區或只有3個登陸的地方?
  • 是否會出現屬於一個組的用戶需要登錄訪問所有3個區域或2個區域的情況?

如果你對這兩個問題的答案是肯定的,那麼有第一個例子設計是有意義的。

tbl_user 
UserID | firstName | Email | Password | LoginArea | GroupID 

1 , Bill , [email protected] , passwordhash344, Backend | 2 
2 , Paul , [email protected] , passwordhash123, Backend | 3