我们在 zf2 项目中大量使用树学说扩展——带有一些大树数据结构。我们知道嵌套集中的插入和更新是昂贵的。我们还知道树插件使用“根”列来找出应该更新哪棵树。
昨天我再次阅读树文档,发现:“支持嵌套集中的多个根”是什么意思,它是如何工作的?我找不到有关此功能的任何文档。
我们希望我们可以定义一棵大树的较低分支的第二个根项,以便插入和更新到这个较低的分支不会影响整个树,而只会影响这个分支。可能吗?
是的,有可能,树根分支将由 0 级节点分隔,请参阅TreeRoot 列的映射示例,应该有所有映射类型的示例以映射 treeRoot 列。该列必须与 ID 属于同一类型,目前不支持 ManyToOne 关系,但有计划支持它。
root1
child
root2
child
child2
在 root2 或 root1 分支上更新或插入任何子分支时,它只会影响该特定分支。另请注意,树仍然不是并发安全的,您必须自己管理锁定,请参阅此处的文档参考。
doc目录包含这里给出的大部分信息。