У нас есть база данных, содержащая несколько деревьев. Эти деревья строятся по принципу «Обход дерева предзаказа». Это очень мощный способ создания деревьев, но у него есть один большой недостаток — одновременное добавление нескольких узлов.
Мы должны создать функцию копирования в нашем дереве, копирование одного (самого низкого уровня) узла очень просто, вы можете сделать это за один вызов. Но теперь мы хотим скопировать сразу всю папку. Нам было интересно, должны ли мы делать это в .net или с хранимой процедурой. Мы должны убедиться, что транзакция работает, если что-то пойдет не так, все придется откатить, иначе дерево будет повреждено.
Любой, кто может помочь мне с этим? Любую информацию о PTT вы можете найти здесь: http://en.wikipedia.org/wiki/Tree_traversal< /а>
Редактировать:
явно нужна дополнительная информация. У меня есть 2 дерева:
Root
Folder 1
Item
Item
Item
Folder 2
Item
Item
Folder 3
Folder 4
Item
Item
Folder 5
Item
Root 2
Folder 6
Я хочу иметь возможность копировать папку 3 в папку 6. Так что детей нужно копировать вместе со всеми элементами. И все левое и правое нужно настроить как следует. Если что-то не получается, нужен полный откат. Надеюсь, теперь это намного понятнее.
РЕДАКТИРОВАТЬ2:
Я написал хранимую процедуру для этого. Если кто-то хочет, просто спросите, я вернусь к этому вопросу позже сегодня. Я опубликую это, если вы хотите.