簡體   English   中英

一對一數據庫設計

[英]1 to 1 database design

我有一個數據庫,通常用戶是中心對象。
在數據庫中,我有一個表rolesroles users in roles因此我可以在網站上給用戶不同的權限。
但是現在我有一個疑問。
我之前看到一個具有這種結構的數據庫(用戶與其他表的關系為1:1):

User{UserId, Username, Email etc.}
Admin{UserId, some specific columns}
Child{UserId, some specific columns}
Admin{Parent, some specific columns}

其他表不是通過User表而是通過Admin, Child and admin.連接到用戶Admin, Child and admin.
因為現在我在設計數據庫,所以我擁有用戶,並且用戶可以是Admin, CompanyManager and Professor
我想知道我應該像上面顯示的那樣設計表格還是僅僅依靠角色嗎?
第一種方法的優勢是什么?
而且在我的業務模型中,用戶不必是CompanyManager或Professor,因此實際上是1比0或1設計。
用這種方案設計數據庫的好方法是什么?

為某些類型的用戶使用特定表的優點是存儲僅與該類用戶相關的信息。

在您的示例中

  • 也許所有用戶都會有一位經理-經理ID會出現在“用戶”列中。
  • 管理者將有權查看某些信息,因此將通過角色進行處理。
  • 只有教授擁有主題或“ HasTenure”屬性。 因此,此信息將放在“教授”表中。 使用此方法,可以避免只在特定用戶子集中使用“用戶”表中的“主題”列。 這樣,您可以避免用戶表中的功能依賴性以及違反第三范式的行為。

我更喜歡這種方法:

在此處輸入圖片說明

這樣,您可以輕松地將角色分組到類別中並將其分配給用戶。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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