BoFFiN
Новичок
Перемещение узла в Nested Sets
Никак не могу разобраться, как узел перемещать...
Например, есть дерево:
1. Ключи и уровень перемещаемого узла:
SELECT level, left_key, right FROM my_tree WHERE = $id
в нашем случае $id = 6, получаем соотвественно level = 3, left_key = 6, right_key = 7
2. Уровень нового родительского узла:
SELECT level FROM my_tree WHERE id = $id_up
в нашем случае $id_up = 2, получаем level($level_up) = 2
3. Правый ключ узла за который мы вставляем узел (ветку):
Данная переменная берется в зависимости от действия:
a)При простом перемещении в другой узел; (т.е. мой случай)
SELECT (right_key – 1) AS right_key FROM my_tree WHERE id = 2 #[id нового родительского узла]
4. Определяем смещения:
$level_up - $level + 1 = $skew_level - смещение уровня изменяемого узла;
$right_key - $left_key + 1 = $skew_tree - смещение ключей дерева;
соотвественно:
2-3+1 = 0
6-7+1=0
дальше не буду продолжать, так как уже не прально, имхо, как может быть смещения 0, что не так делаю?!
Статья Дерево каталогов NESTED SETS (вложенные множества) и управление им
З.Ы. Спасибо
Никак не могу разобраться, как узел перемещать...
Например, есть дерево:
Хочу получить такое дерево:•Home
••Moskow
•••Photo
••London
•••Photo
•••Story
Делаю:•Home
••Moskow
•••Photo
•••Story
••London
•••Photo
1. Ключи и уровень перемещаемого узла:
SELECT level, left_key, right FROM my_tree WHERE = $id
в нашем случае $id = 6, получаем соотвественно level = 3, left_key = 6, right_key = 7
2. Уровень нового родительского узла:
SELECT level FROM my_tree WHERE id = $id_up
в нашем случае $id_up = 2, получаем level($level_up) = 2
3. Правый ключ узла за который мы вставляем узел (ветку):
Данная переменная берется в зависимости от действия:
a)При простом перемещении в другой узел; (т.е. мой случай)
SELECT (right_key – 1) AS right_key FROM my_tree WHERE id = 2 #[id нового родительского узла]
4. Определяем смещения:
$level_up - $level + 1 = $skew_level - смещение уровня изменяемого узла;
$right_key - $left_key + 1 = $skew_tree - смещение ключей дерева;
соотвественно:
2-3+1 = 0
6-7+1=0
дальше не буду продолжать, так как уже не прально, имхо, как может быть смещения 0, что не так делаю?!
Статья Дерево каталогов NESTED SETS (вложенные множества) и управление им
З.Ы. Спасибо