我建立一個旅遊平臺,我計劃有以下用戶表:MySQL數據庫設計:一個用戶表,兩個用戶組?
USERS:ID,用戶名,密碼,電子郵件,名字,姓氏,說明,picture_path
我的目標是有兩組用戶:
- 旅遊經營者
- 遊客
當旅遊運營商登錄時,我希望系統認識到他來自「旅遊經營者」小組,以便將他的不同信息顯示給他,就好像他是「遊客」組的一部分一樣。
我的問題:在我的數據庫設計中實現這兩個用戶組的最佳方式是什麼?
我建立一個旅遊平臺,我計劃有以下用戶表:MySQL數據庫設計:一個用戶表,兩個用戶組?
USERS:ID,用戶名,密碼,電子郵件,名字,姓氏,說明,picture_path
我的目標是有兩組用戶:
當旅遊運營商登錄時,我希望系統認識到他來自「旅遊經營者」小組,以便將他的不同信息顯示給他,就好像他是「遊客」組的一部分一樣。
我的問題:在我的數據庫設計中實現這兩個用戶組的最佳方式是什麼?
你應該有UserCategories
表:
CREATE TABLE `UserCategories` (
UC_ID INT PRIMARY KEY AUTO_INCREMENT,
IC_Title VARCHAR(100)
)engine=innodb;
然後在你的users表中有一個名爲CategoryID
列,並把它引用在UC_ID = CategoryID
UserCategories
表。
這樣,你就會知道哪些種類中的用戶屬於我會做到這一點無論是其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'
或者你可以抓住特定用戶類別的所有權限,並查看是否當前登錄的用戶必須執行該操作該權限。
這樣做的一個簡單方法是在存儲組類型的USERS表中添加一列。例如:groupType
可以存儲operator
或tourist
,根據該值,可以顯示或隱藏頁面中的內容。
所以你建議三個單獨的表:1)用戶,2)UserCategories,3)權限。將用戶表與usercategories錶鏈接起來的SQL命令是什麼? –