我应该使用Table-per-hierarchy?

问题描述:

已更新的图像在底部我应该使用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

我们不知道 - 这取决于您的应用需求。无论如何,即使使用TPH,仍然会有单独的CompanyID,ProjectID,EmployeeID列,因为映射到派生类型的特定属性的列无法重用,并且您无法在列上创建条件关系。

+0

我可以使用EntityType或EntityType和EntityID的组合作为此表和实体的鉴别器列。我不会将该表与其他表映射。这个表格将被用来存储各种经理。如果不建议这样做,请提供其他建议。我已经用迄今为止的设计图更新了这个问题。我现在需要存储各种管理人员。在此欣赏你的时间。 – 2012-07-27 14:18:14