将实体关系模型扩展到表(子类)



在EER模型中有子类实体。我想知道在真正的SQL表中实现这一点的方法是什么,或者是否有任何指南可以帮助我了解如何将实体子类实现到表中。感谢

Martin Fowler的《企业应用程序架构的模式》一书涵盖了子类化表的解决方案:

  • 单表继承
  • 类表继承
  • 混凝土表继承

这些对应于@spencer7593的答案中的选项,而不与Java&冬眠

Hibernate文档讨论了在关系数据库中表示继承层次结构的可用选项。毫无疑问,有更好的教程,但Hibernate ORM(喜欢或讨厌它)解决了这个问题。

因为没有单一的"最佳方式"来表示继承层次结构,所以它们支持所有选项:

  • 每个类层次结构的表-基本上是一个表,具有所有子类的所有属性。在的许多行上,许多列可能为空

  • 每个子类一个表-一个表用于超类,每个子类一个单独的表

  • 每个具体子类的表-每个子类的单独表(没有超类的表)

没有一个正确的答案。这些方法各有利弊。

http://docs.jboss.org/hibernate/orm/3.3/reference/en-US/html/inheritance.html

相关内容

  • 没有找到相关文章

最新更新