[英]Mysql Many to Many relationship
我正在嘗試在兩個表之間實現簡單的多對多關系。 用戶和組。
User
---------
user_id
user_name
Group
----------
group_id
group_name
UserGroup
----------
user_id
group_id
假設用戶表和組表均具有1000個條目。
我必須創建一個屬於所有組的管理員用戶。 我應該在UserGroup表中為“ admin”用戶創建1000個條目嗎?
我可以在用戶表中創建一個布爾列,說“ Applicable_to_all_groups”,然后從用戶組表中進行選擇之前應首先檢查該布爾列嗎?
任何有關以正確方式執行此操作的建議將不勝感激。
好吧,我會說對於這種情況,沒有“真正的”解決方案。
讓我們來看看一些優點/缺點
解決方案1 ,全部在UserGroup表中
優點
獲取允許的組的請求更容易編寫(沒有OR子句)
缺點
每次在組表中添加條目時,都必須在該表中添加條目。 當然可以,但是很無聊,而且容易出錯。
如果您想要一個新的“也可以與所有組相關的用戶”,則必須重寫所有過程/觸發器/您使用的“最新” UserGroup表中添加的所有內容。
Solution2 ,標志(=布爾列)
優點
避免在數據庫中輸入不必要的條目(好一點)
始終“最新”,無需任何其他工作。
輕松添加具有“所有組”權限的新用戶(只需將標記設置為true)
缺點
請求允許的組時(基於標志或GroupUser表),您必須添加OR子句
個人觀點
我會去標志解決方案...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.