我一直在使用数据模型很长一段时间。我现在相信这个模型存在缺陷,但我不确定如何改进它。
基本上,我的域名模式是一个小型广告网站,供寻求保姆的幼儿/保姆和寻求婴儿照顾的父母。
域模型目前有一个基本帐户类,该类由两个 ParentAccount 和 ChildminderAccount 类子类化。我还有基础广告类,它由三个 ChildminderAdvertisement , ParentToParentAdvertisment 和 ParentToChildminderAdvertisement 类子类化。
大多数属性对于子类是通用的,因此位于超类中。
列出子类之间的一些差异:
这意味着ChildminderAccount子类与ParentAccount子类没有的其他表有关系。
继承当前由JPA层使用Joined策略实现(请参阅JPA文档:@Inheritance(strategy=InheritanceType.JOINED)
)参见图表。
我面临着当前设计的一些问题:
正如我上面所说,我不确定如何改进设计:是否完全放弃继承(db级别)或是否采用另一种继承策略......
任何线索欢迎。
答案 0 :(得分:0)
那么,JPA人员制作所有“继承策略”的原因是在使用SQL表(通过JPA实体)时更接近地模拟OO多态性。你确定你正在利用这个功能。
例如,如果您想要所有帐户类型条目(无论它们是实际的ParentAccount还是ChildminderAccount),您可以执行以下操作:
SELECT a FROM Account a WHERE ...."