簡體   English   中英

MySQL多對多關系

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM