3

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

4

2 回答 2

4

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

这些对应于来自@spencer7593 的答案中的选项,而不受Java 和Hibernate 的约束。

于 2013-07-19T23:08:53.033 回答
3

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

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

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

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

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

没有唯一的正确答案。这些方法中的每一个都有优点和缺点。

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

于 2013-07-19T22:54:30.427 回答