-1

我正在为我的新项目构建数据库模型。对于我的模型中的所有实体(这是一个 cms,以及诸如 f.ex 的实体:页面、内容、菜单、模板和一堆其他实体),它们在日期和名称上都具有相同的属性。

更具体地说,每个实体包含以下日期:IsCreated、IsValidFrom、IsPublished、IsDeleted、IsEdited 和 IsExpired,以及名称:CreatedByNameId、ValidFromByNameId、PublishedByNameId 等等......

我将使用 EF5 映射到对象。

问题很简单:构建这个的最佳方法是什么:在每个表中都有所有字段(我没有义务......)或有两个单独的表,另一个可以关联......?

在此先感谢/芬恩。

4

1 回答 1

0

首先 - 读一读 - http://www.agiledata.org/essays/mappingObjects.html

您确实需要考虑您的查询/访问路径。在不同的实现之间有很多权衡。

不过,在回复您的示例时,

鉴于以下设置:

常见的

ValidFromByNameId

具体1

场A

具体2

字段B

通过 COMMON 属性进行查询很容易,但是在提取子类时您必须使用一些魔法(除非 EF5 为您执行此操作)

如果您要问的主要问题是关于 specific1 和 specific2,那么这可能不是正确的模型。拥有 COMMON 表并没有真正给您带来太多必要,因为它会引入一个连接来加载任何 Specific1 对象。在这种情况下,我可能只是有重复的列。

这个答案是故意不完整的,因为已经有大量文章和博客可以更好地处理完整的答案。搜索“将对象层次结构映射到数据库”

于 2013-10-29T13:13:04.920 回答