我想要在关系数据库中使用一般对象ObjectBlock
。每个块都有一个名为Object
的实体列表。这与正常的一对多关系之间的区别在于我想在块中的两个后续对象之间存储一个操作(ex AND
和OR
)。
例如,BlockObject
可能如下所示:
Object1
AND
Object2
OR
Object3
AND
Object4
在关系数据库中表示此信息的最合适架构是什么?
在我的情况下,唯一可能的操作是在列表的末尾添加一个新对象,但是非常感谢一个推广到更复杂操作(交换对象)的解决方案。
答案 0 :(得分:0)
我认为你基本上需要在数据库中存储一个类似树的复合结构。尽量避免这种情况,但如果你真的需要 - 快速谷歌:http://www.theresearchkitchen.com/archives/57或Help regarding composite pattern with hibernate
出于性能原因,我建议只将关系映射到父级(使用lazy fetch),而不是映射到子级,并创建特殊的dao方法来加载整个树,子树等。
如果可以的话,将这种类型的结构坚持到Neo4J会更好更快。