在嵌套集模型Java / MySQL中复制子树

时间:2014-06-07 20:35:21

标签: mysql java tree

我使用嵌套集模型来表示程序中的树文件夹。表结构为:
id | lft | rft | level

第一个字段是id,第二个字段是嵌套间隔的左侧值,第三个字段是树中的右侧值和级别(级别值从1开始)。
我正在使用MySQL和JAVA。

问题是:如何使用此模型从树中复制子树?

1 个答案:

答案 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