Mam zestaw obiektów w hierarchii. Istnieje węzeł górny "root", który ma węzły potomne, które z kolei mają węzły potomne itp. Próbuję zapisać tę strukturę w DB przy użyciu modelu zestawu zagnieżdżonego, gdzie każda "strona" każdego węzła jest ponumerowana, aby zdefiniować hierarchia, jak w Managing Hierarchical Data in MySQL:PHP RecursiveIteratorIterator i zestawy zagnieżdżone
alt text http://dev.mysql.com/tech-resources/articles/hierarchical-data-4.png
Mój problem polega na obliczaniu wartości lewej i prawej stronie. Zwykle używam programu RecursiveIteratorIterator do iterowania w hierarchii, ale nie mogę obliczyć, jak obliczyć liczby bez odwoływania się do funkcji rekursywnej, która analizuje zmienną indeksu przez odniesienie.
Wszelkie pomysły?
To prawdopodobnie bezużyteczna, ale jest to (niepoprawne) Kod Obecnie mam:
$iterator = new RecursiveIteratorIterator(
new Node_List(array($root)),
RecursiveIteratorIterator::SELF_FIRST);
$i = 0;
foreach ($iterator as $node) {
$node->left = ++$i;
$node->right = ++$i;
}
Jak widać, że dałoby coś takiego:
Node
Node
Node
lewo i prawo wartości:
Node (1, 2)
Node (3, 4)
Node (5, 6)
kiedy powinny być:
Node (1, 6)
Node (2, 3)
Node (4, 5)