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个文档,该文档始终是内部或外部文档(绝不是两者)。 如果是这样,那么为什么不使用一个单独的表,就像这样:
|
Hayreddin Tüzel · 预约系统数据库建模[关闭] 6 年前 |
alabaster · 逻辑数据模型-如何表示可选FK? 7 年前 |
Laurent · 具有领域的Nosql数据库结构 7 年前 |
romss182 · ActiveRecord:地点和路线有哪些关联? 7 年前 |
Niklas B · 云数据存储避免在非常简单的表上爆炸索引 8 年前 |
sçuçu · SQL JOIN查询中的重复条目 8 年前 |