本文介紹了數據建模。拆分到單獨的表中還是使用基于角色的授權?的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
我正在嘗試在開始之前為一個新的應用程序建立盡可能多的數據模型。這款應用將擁有用戶空間??臻g將有多個管理員級別,但也將有非管理員成員??臻g將通過space_roles/space_admins
連接表關聯管理員(名稱取決于我試圖做出的設計決定)。我正在使用一個角色模型來創建空間和管理員之間的關聯。這意味著SPACE_ROLES表將與user_id, space_id and role_id
列進行三向聯接。
我計劃最終圍繞成員可以訪問的空間構建一系列工具。這些可能不一定僅限于某個空間的成員。未來很可能會出現這樣的情況:一個空間的成員可以以空間為范圍跨越組織邊界與另一個空間的成員互動(例如,一支運動隊的球迷可以加入另一支運動隊的墻上的討論,在那里運動隊是對空間的類比)。
我的問題是,我是應該只創建一個名為‘Members’的角色,還是應該將成員分解到另一個模型(Members?)通過SPACE_MEMBERS與關聯?請盡可能解釋您的建議的優點/缺點。
推薦答案
如果您的Admin
用戶是Users
的子集,并且用戶可以成為或不再是管理員,則將他們保留在同一個表中。
如果您的用戶(管理員或非管理員)可以參與您的多個空間,您可能需要一個單獨的USERS表和一個單獨的USERS_SPACES連接表。該表可能具有此布局。
user_id part of the primary key
space_id the rest of the primary key
role 1 = contributor to the space, 2=member, 3=admin 4=owner etc
如果用戶和管理員是完全不同的人員集合,則使用兩個兩個表并將它們分開。例如,如果你在做醫療保健,他們是護士和病人,你肯定會把他們分開,因為他們遵守不同的保密規則。
這篇關于數據建模。拆分到單獨的表中還是使用基于角色的授權?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,