2014-05-21 130 views
0

我建立一個旅遊平臺,我計劃有以下用戶表:MySQL數據庫設計:一個用戶表,兩個用戶組?

USERS:ID,用戶名,密碼,電子郵件,名字,姓氏,說明,picture_path

我的目標是有兩組用戶:

  1. 旅遊經營者
  2. 遊客

當旅遊運營商登錄時,我希望系統認識到他來自「旅遊經營者」小組,以便將他的不同信息顯示給他,就好像他是「遊客」組的一部分一樣。

我的問題:在我的數據庫設計中實現這兩個用戶組的最佳方式是什麼?

回答

0

你應該有UserCategories表:

CREATE TABLE `UserCategories` (
    UC_ID INT PRIMARY KEY AUTO_INCREMENT, 
    IC_Title VARCHAR(100) 
)engine=innodb; 

然後在你的users表中有一個名爲CategoryID列,並把它引用在UC_ID = CategoryIDUserCategories表。

這樣,你就會知道哪些種類中的用戶屬於我會做到這一點無論是其operator ID 1或tourist ID 2.

是我有另一個表稱之爲Permissions引用許可UserCategories。這樣你將能夠自定義什麼樣的訪問Tourists應該有。

更新:

SELECT COLUMN1, COLUMN2 ... 
    FROM users 
    INNER JOIN UserCategories ON UC_ID = CategoryID 
    INNER JOIN Permissions ON UC_ID = PCategoryID 
    WHERE Permission = 'update_data' OR Permission = 'delete_data' 

或者你可以抓住特定用戶類別的所有權限,並查看是否當前登錄的用戶必須執行該操作該權限。

+0

所以你建議三個單獨的表:1)用戶,2)UserCategories,3)權限。將用戶表與usercategories錶鏈接起來的SQL命令是什麼? –

0

這樣做的一個簡單方法是在存儲組類型的USERS表中添加一列。例如:groupType可以存儲operatortourist,根據該值,可以顯示或隱藏頁面中的內容。

相關問題