在EER模型中有子类实体。我想知道在真正的SQL表中实现这一点的方法是什么,或者是否有任何指南可以帮助我了解如何将实体子类实现到表中。感谢
Martin Fowler的《企业应用程序架构的模式》一书涵盖了子类化表的解决方案:
- 单表继承
- 类表继承
- 混凝土表继承
这些对应于@spencer7593的答案中的选项,而不与Java&冬眠
Hibernate文档讨论了在关系数据库中表示继承层次结构的可用选项。毫无疑问,有更好的教程,但Hibernate ORM(喜欢或讨厌它)解决了这个问题。
因为没有单一的"最佳方式"来表示继承层次结构,所以它们支持所有选项:
-
每个类层次结构的表-基本上是一个表,具有所有子类的所有属性。在的许多行上,许多列可能为空
-
每个子类一个表-一个表用于超类,每个子类一个单独的表
-
每个具体子类的表-每个子类的单独表(没有超类的表)
没有一个正确的答案。这些方法各有利弊。
http://docs.jboss.org/hibernate/orm/3.3/reference/en-US/html/inheritance.html