我使用嵌套集模型来表示程序中的树文件夹。表结构为:
id | lft | rft | level
第一个字段是id,第二个字段是嵌套间隔的左侧值,第三个字段是树中的右侧值和级别(级别值从1开始)。
我正在使用MySQL和JAVA。
问题是:如何使用此模型从树中复制子树?
答案 0 :(得分:0)
a)确保目标中有足够的空隙(你可能最终在这里重新编号整个树)
b)对于正在移动的顶级节点:
let a = lft - lft'
b = level' - level
其中lft'是该节点的新lft,level是新级别
c)a和b现在可以用来确定所有正在移动的节点的新的lft,rft和level:
let lft' = lft + a
rft' = rft + a
level' = level + b