如何表示链接关系数据库中2个连续实体的条件?

时间:2018-02-08 16:18:19

标签: database orm relational-database entity entity-relationship

我想要在关系数据库中使用一般对象ObjectBlock。每个块都有一个名为Object的实体列表。这与正常的一对多关系之间的区别在于我想在块中的两个后续对象之间存储一个操作(ex ANDOR)。

例如,BlockObject可能如下所示:

Object1 AND Object2 OR Object3 AND Object4

在关系数据库中表示此信息的最合适架构是什么?

在我的情况下,唯一可能的操作是在列表的末尾添加一个新对象,但是非常感谢一个推广到更复杂操作(交换对象)的解决方案。

1 个答案:

答案 0 :(得分:0)

我认为你基本上需要在数据库中存储一个类似树的复合结构。尽量避免这种情况,但如果你真的需要 - 快速谷歌:http://www.theresearchkitchen.com/archives/57Help regarding composite pattern with hibernate

出于性能原因,我建议只将关系映射到父级(使用lazy fetch),而不是映射到子级,并创建特殊的dao方法来加载整个树,子树等。

如果可以的话,将这种类型的结构坚持到Neo4J会更好更快。