Добрый день.
Есть таблица с ltree-структурой и ей нужно перевести в nested set.
StructureLtree(id INT PRIMARY KEY, value TEXT, path ltree);
-- Данные:
pk | value | path |
0 | 'A' | '' |
0 | 'B' | '1' |
0 | 'C' | '2' |
0 | 'D' | '1.3' |
0 | 'E' | '1.4' |
0 | 'F' | '1.5' |
0 | 'G' | '2.6' |
0 | 'H' | '2.7' |
StructureSets(id INT PRIMARY KEY, value TEXT, lft INT, rgt INT);
, где левая и правая граница узла соответствует правилам определения вложенного множества.
То есть на выходе получить что-то вроде
-- Данные:
pk | value | lft | rgt |
0 | 'A' | 1 | 16 |
1 | 'B' | 2 | 9 |
2 | 'C' | 10 | 15 |
3 | 'D' | 3 | 4 |
4 | 'E' | 5 | 6 |
5 | 'F' | 7 | 8 |
6 | 'G' | 11 | 12 |
7 | 'H' | 13 | 14 |
Может кто-нибудь подсказать идею?