【发布时间】:2014-06-07 20:35:20
【问题描述】:
我正在使用嵌套集模型来表示程序中的树文件夹。表结构为:id | lft | rft | level
第一个字段是id,第二个是嵌套区间的左值,第三个是右值和树中的层级(层级值从1开始)。
我正在使用 MySQL 和 JAVA。
问题是:如何使用此模型从树中复制子树?
【问题讨论】:
我正在使用嵌套集模型来表示程序中的树文件夹。表结构为:id | lft | rft | level
第一个字段是id,第二个是嵌套区间的左值,第三个是右值和树中的层级(层级值从1开始)。
我正在使用 MySQL 和 JAVA。
问题是:如何使用此模型从树中复制子树?
【问题讨论】:
a) 确保目标中有足够的间隙(您最终可能会在此处重新编号整棵树)
b) 对于移动的顶部节点:
let a = lft - lft'
b = level' - level
其中 lft' 是该节点的新 lft,而 level' 是新级别
c) a 和 b 现在可用于确定所有正在移动的节点的新 lft、rft 和级别:
let lft' = lft + a
rft' = rft + a
level' = level + b
【讨论】: