2016-03-14 77 views
0

我有2個表稱爲集團和人,集團是強大的實體和人是弱者。強實體指其弱實體

集團(PK_Group,名稱,...)

人(PK_Group,PK_Person,名稱,...)

的問題是,如何組長添加到表。是否將Person_Leader添加到Person表是一個很好的設計?任何建議?謝謝。

回答

0

我會將外鍵leader_id添加到引用此組的人員的組中。您考慮的領導者國旗制定了約束條件,以確保每個小組都有一個更加複雜的領導者。

在決定之前,我會重新考慮您的主要關鍵戰略。我是否明白你的想法是將PK_Group包含在Person的主鍵中?這使得團體會員資格成爲該人員的識別資產。如果有一天,一個人可能成爲多個團體的成員,或者某個人可能從一個團體移動到另一個團體,那麼您將遇到麻煩。因此,如果您從頭開始設計此數據庫,並且不受任何先前的舊數據結構限制,則應爲每個僅用於識別目的的表定義鍵,而不是描述數據對象。

所以我的建議是:

group(pk_id, name, fk_leader_id, ...) 
person(pk_id, name, fk_group_id, ...) 

其中fk意味着外鍵。

+0

我的桌子設計只是簡單的解釋我真正的麻煩。爲了清除,有人不能加入多個組。 –