Ben bu verileri var:
id | parent_id | lft | rgt | name
=====================================
1 | 0 | 1 | 8 | abc
2 | 3 | 5 | 6 | jkl
3 | 1 | 2 | 3 | def
4 | 0 | 9 | 10 | mnno
5 | 1 | 4 | 7 | ghi
Ben bu sırayla (kimlikleri) bu hiyerarşiyi çapraz gerekir: 1> 3> 5> 2> 4
Bunu nasıl başarabiliriz?
Ben node_x sonraki düğümü bulmak istediğinizi varsayalım.
if (node_x_rgt - node_x_lft == 1) {
next_node_lft = node_x_rgt + 1;
} else {
next_node_lft = node_x_lft + 1;
}
Bu formül sadece bazı durumlarda (düğüm kimlikleri 1,3,5,2) çalışır. Düğüm 2 bir sonraki düğüm 4 olmalıdır.