很好用嵌套集 http://www.evanpetersen.com/item/nested-sets.html对于分层数据。但在这个设计中,如果删除或插入一些数据,您应该始终计算右侧和左侧节点。此外,您没有任何外键。
我如何用 JPA 反映这个模型?是否可以?
我认为即使有右和左,您仍然需要 PARENT_ID,否则父/子查询将效率低下,或者我什至不确定是否可能。
您可以在应用程序/模型中或通过 PrePersist/PreUpdate/PreRemove 事件更新 RIGHT 和 LEFT 值。
另一种选择是使用分解表。为此,您只需添加使用 ManyToMany 连接表的 allChildren 关系。当您将子节点添加到任何节点时,只需将该子节点添加到其所有父节点即可。
另一种选择是仅在数据库中使用分层查询,例如 Oracle 中的 CONNECT BY 子句。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)