2012-07-27 61 views
0

已更新的圖像在底部我應該使用Table-per-hierarchy?

我有三個實體 - 公司,項目,員工。

公司有一個或多個公司經理。 項目只有一個ProjectManager。 員工恰好有一個EmployeeManager

我想創建一個數據庫設計,然後爲此創建EF Code First Model。

我應該建立單獨的表用於存儲CompanyManagers,ProjectManagers和EmployeeManagers

或者

我應該創建一個將存儲的各種管理一個單一的表?這樣的表看起來是這樣的: 經理ID

的EntityType

ENTITYID(CompanyID,專案編號,僱員)

修訂 這裏是設計到目前爲止(公司,項目,員工):

enter image description here

+0

要使用哪種策略取決於您提供的詳細信息的更多因素a.o.所有類型的字段數量都有共同之處。一系列優秀的帖子可以幫助你做出決定[這裏](http://weblogs.asp.net/manavi/archive/2010/12/24/inheritance-mapping-strategies-with-entity-framework-code -first-CTP5部分-1-表每層次-tph.aspx)。 – 2012-07-27 22:24:50

回答

0

我們不知道 - 這取決於您的應用需求。無論如何,即使使用TPH,仍然會有單獨的CompanyID,ProjectID,EmployeeID列,因爲映射到派生類型的特定屬性的列無法重用,並且您無法在列上創建條件關係。

+0

我可以使用EntityType或EntityType和EntityID的組合作爲此表和實體的鑑別器列。我不會將該表與其他表映射。這個表格將被用來存儲各種經理。如果不建議這樣做,請提供其他建議。我已經用迄今爲止的設計圖更新了這個問題。我現在需要存儲各種管理人員。在此欣賞你的時間。 – 2012-07-27 14:18:14