我们在zf2项目中大量使用树doctrine extension - 使用一些大型树数据结构。我们知道嵌套集中的插入和更新很昂贵。我们也知道树插件使用" root"列,以找出要更新的树。
昨天我再次阅读tree documentation并发现: "支持嵌套集中的多个根" 它是什么意思,它是如何工作的?我找不到此功能的任何文档。
我们希望我们可以定义一个大树下部分支的第二个根项,这样插入和更新到这个下部分支不会影响整个树,只会影响这个分支。有可能吗?
答案 0 :(得分:1)
是的,有可能,树根分支将由0级节点分隔,请参阅mapping example of TreeRoot column应该有所有映射类型的示例来映射treeRoot列。该列必须与ID类型相同,它现在不支持ManyToOne关系,但有一天会有计划支持它。
root1
child
root2
child
child2
在root2或root1分支上更新或插入任何子代时,它只会影响某个分支。另请注意,树仍然不是同时安全的,您必须自己管理锁定,请参阅documentation reference here。
doc 目录包含此处提供的大部分信息。