|
|
1
1
经典的ER建模不包括外键,您问题的要点在于外键将如何工作。我认为您真正要做的是关系建模,即使您使用的是ER图。 在关系建模方面,有第三种方法来建模继承。也就是说,对专门化表使用与通用表相同的ID。然后,doc_internal表的id字段既是doc_internal表的主键,也是引用supply_farm表的外键。对于Doc_外部表,同上。 supply_farm表中的id字段既是supply_farm表的主键,也是引用doc_internal或doc_external表的外键,具体取决于。联接可以神奇地将正确的数据组合在一起。 设置这个需要一些编程,但它是值得的。 更多细节,我建议你谷歌“泛化专业化关系建模”。网上有一些关于这个主题的优秀文章。 |
|
|
2
1
这两种方法都是正确的,它们的使用将完全取决于用例、要存储的数据的类型和数量,以及您最希望触发的查询的类型。当继承层次结构复杂时,您还可以考虑将这两种策略结合起来。 我认为,第一种方法比较可取的一个用例是,当您希望搜索所有文档时,例如,基于描述或任何公共字段。 This 文档(尽管特定于Hibernate)可以提供关于不同继承建模策略的更多信息。 |
|
|
3
0
如果我正确理解了这一点,那么Supply Farm对应于0或1个文档,该文档始终是内部或外部文档(绝不是两者)。 如果是这样,那么为什么不使用一个单独的表,就像这样:
|
|
|
Jordan Williams · SQL列中的外键列表 4 年前 |
|
|
nicolallias · 无法无错误地联接实体 8 年前 |
|
|
Florian · ef核心-两个一对一的主密钥 8 年前 |
|
|
John Katsantas · 我如何制作这个图书馆的ER图? 8 年前 |
|
|
Laurent Parmentier · 环回关系从不返回值 8 年前 |
|
|
Robert · Symfony 4序列化关系值为空的实体 8 年前 |
|
|
user9181771 · ER图设计问题 8 年前 |