我正在为我的新项目构建数据库模型。对于我的模型中的所有实体(这是一个cms,实体如f.ex:页面,内容,菜单,模板和其他一些实体),它们在日期和名称上都有相同的属性。
更具体地说,每个实体包含以下日期:IsCreated,IsValidFrom,IsPublished,IsDeleted,IsEdited和IsExpired,以及名称:CreatedByNameId,ValidFromByNameId,PublishedByNameId等等......
我将使用EF5映射到对象。
问题很简单:构建这个问题的最佳方法是:在每个表格中包含所有字段(我没有义务......)或者有两个单独的表格,另一个表格可以与...相关联。 ?
提前致谢/芬兰人。
答案 0 :(得分:0)
首先 - 请阅读 - http://www.agiledata.org/essays/mappingObjects.html
您真的需要考虑您的查询/访问路径。不同的实现之间存在许多权衡。
回答你的例子,
给出以下设置:
ValidFromByNameId
FIELDA
FieldB
通过COMMON属性查询很容易,但是在拉起子类时你必须要有一些魔力(除非EF5为你做了)
如果你问的主要问题是关于具体1和具体2那么可能这不是正确的模型。拥有COMMON表并没有真正为你带来太多必要,因为它会引入一个连接来加载任何Specific1对象。在这种情况下,我可能只有重复的列。
这个答案是故意部分的,因为已经有很多文章和博客可以更好地处理完整答案。搜索“将对象层次结构映射到数据库”