表(子类)的扩展实体 - 关系模型

时间:2013-07-19 22:38:53

标签: database entity-relationship eer-model

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

2 个答案:

答案 0 :(得分:4)

Martin Fowler的书Patterns of Enterprise Application Architecture涵盖了子表化表的解决方案:

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

答案 1 :(得分:3)

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

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

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

  • 每个子类的
  • 表 - 超类的一个表,以及每个子类的单独表

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

没有一个正确的答案。这些方法中的每一种都有利有弊。

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