Zakładam na podstawie twoich tagów i tytułu, że szukasz rozwiązania, które działa z MySQL .
Tak, masz rację, jeśli nie znasz z góry liczby elementów, wartość right
należy obliczyć dynamicznie. Można skorzystać z dwóch podejść:
- Możesz zacząć od najmniejszej wartości, która działa (w tym przypadku 2) i zwiększyć ją później w razie potrzeby.
- Możesz po prostu zgadnąć, jak 10000000 i mieć nadzieję, że to wystarczy, ale musisz być przygotowany na możliwość, że to nie wystarczy i może wymagać ponownej korekty później.
W obu przypadkach musisz zaimplementować, że left
i right
wartości dla wielu wierszy mogą wymagać dostosowania podczas wstawiania nowych wierszy, ale w drugim przypadku aktualizacje trzeba wykonać tylko wtedy, gdy domysły były błędne. Więc drugie rozwiązanie jest bardziej złożone, ale może zapewnić lepszą wydajność.
Zwróć uwagę, że z czterech powszechnych sposobów przechowywania danych heirarchicznych podejście zestawów zagnieżdżonych jest najtrudniejsze do wykonywania wstawek i aktualizacji. Zobacz slajd 69 Modele danych heirarchicznych Billa Karwina .