我们有一个包含几棵树的数据库。 这些树是使用“预定树遍历”原则构建的。这是创建树的非常强大的方法,但它有一个很大的缺点,即一次添加多个节点。预订树遍历复制文件夹
我们必须在我们的树中创建一个复制函数,复制单个(最低级别)节点非常容易,您可以在一次调用中执行此操作。 但现在我们想要一次复制整个文件夹。 我们想知道我们是否应该使用存储过程在.net中执行此操作。 我们必须确保事务能够正常工作,如果出现任何问题,都必须进行回滚,因为其他方式会导致树被破坏。
任何人都可以帮助我? 约PTT任何信息,你可以在这里找到:http://en.wikipedia.org/wiki/Tree_traversal
编辑:
一些更多的信息显然是必要的。 我有两棵树:
Root
Folder 1
Item
Item
Item
Folder 2
Item
Item
Folder 3
Folder 4
Item
Item
Folder 5
Item
Root 2
Folder 6
我希望能够复制文件夹3 underneith文件夹6. 洙需要与所有项目一起复制的孩子。 而所有的权利和权利需要适当调整。如果某件事失败,则需要完整的回滚。希望现在更清楚。
EDIT2:
我已经为此编写了一个存储过程。 如果有人想要它,只是问我今天晚些时候会回到这个问题。 我会发布它,如果你想。
我认为在文件夹1的第二项(6出现两次)后节点左/右值是错误的。因此,所有左/右值> 6(文件夹1的第二项右侧除外)应增加1。 – zeFrenchy 2011-12-14 17:10:24