Erd

共享一個表的多個實體

  • March 9, 2021

我有這種情況,我有兩個不同的實體,Researcher並且Lab Manager我希望兩者都有個人資料。

當使用者登錄時,他可能是兩個實體之一,並且在兩個表中搜尋使用者名可能效率低下,所以我認為共享一個名為 profile 的表的兩個主題都是可行的方法。

這是我的嘗試

IS圖

但我意識到它有兩個問題

  • 而不是研究人員或經理擁有個人資料,個人資料必須同時擁有研究人員和經理
  • 當我查詢使用者時,如何在不添加類型屬性的情況下知道他的類型

任何想法,將不勝感激

允許Field為 NULL 並且每個沒有的使用者Field都是研究人員。

如果欄位不夠,還有 TeamId,對於 magaers 可以是 -1。

或兩者的結合

但老實說,Type 欄位與 Tinyint 一樣有意義,而且您對未來很敏感,因為必須有學生助手等等

在不了解整個背景或話語領域的情況下,很難談論建模的具體問題。

而不是研究人員或經理擁有個人資料,個人資料必須同時擁有研究人員和經理

您可以將關係標記為 0..1(零對一)而不是 1..1(一對一)。有關如何顯示基數和序數的資訊,請參閱此連結和 ER 圖符號部分。

當我查詢使用者時,如何在不添加類型屬性的情況下知道他的類型

通過將表配置文件加入每個相應的角色表,或檢查配置文件 ID 是否存在於 Manager 或 Researcher 表中。這取決於您的設計,並且需要確定是否最好在配置文件上具有類型屬性。

引用自:https://dba.stackexchange.com/questions/286638