2014-03-30 122 views
0

問題標題有點混亂。我有一個班級工作人員和一個班級項目。一個或多個員工正在從事一個或多個項目。在這個協會中,我只有一個從具有*多樣性的職員類別到具有多重性的項目類別的鏈接。現在還有另一個實現。每個項目只有一名經理在職員階層!
我的問題是,最好的方法是在項目類中有一個屬性管理器,它是員工ID的外鍵,或者具有從STAFF類到1-1多重性的項目類的另一個鏈接?兩個班級之間可能需要聯繫嗎?最後的想法是在這些類與兩個項目經理和項目ID字段之間有一個關聯類?兩個類之間可能有兩個鏈接(關聯)嗎?

回答

1

如果一個項目有一個單獨的管理器,那麼建立這個模型的適當方法是在Projects表中有一個名爲ManagerId的列,並對其他表進行適當的外鍵引用。如果經理需要,那麼這將被宣佈爲NOT NULL

如果一個項目可能有多個經理,那麼您需要一個關聯/聯結表來記錄這些信息。這樣做時,你只需要一個經理似乎是不必要的複雜。而且,對任意數量的東西施加約束通常比處理零個或一個更困難。

上述情況的一個例外是經理可以隨時間變化。然後你會想要另一張有效和結束日期的表格,用於每位經理的統治。