Ich gehe von Ihren Tags und Titeln aus, dass Sie nach einer Lösung suchen, die mit MySQL funktioniert .
Ja, Sie haben Recht, wenn Sie die Anzahl der Elemente nicht im Voraus kennen, ist der Wert für right
muss dynamisch berechnet werden. Es gibt zwei Ansätze, die Sie verwenden können:
- Sie könnten mit dem kleinsten funktionierenden Wert beginnen (in diesem Fall 2) und ihn später nach Bedarf erhöhen.
- Sie könnten einfach 10000000 schätzen und hoffen, dass das ausreicht, aber Sie müssen auf die Möglichkeit vorbereitet sein, dass es nicht ausreicht und später erneut angepasst werden muss.
In beiden Fällen müssen Sie den left
implementieren und right
Werte für mehrere Zeilen müssen möglicherweise angepasst werden, wenn neue Zeilen eingefügt werden, aber im zweiten Fall müssen Sie die Aktualisierungen tatsächlich nur durchführen, wenn Ihre Vermutungen falsch waren. Die zweite Lösung ist also komplexer, kann aber eine bessere Leistung liefern.
Beachten Sie, dass von den vier üblichen Möglichkeiten zum Speichern hierarchischer Daten der Ansatz mit verschachtelten Sätzen der schwierigste ist um Einfügungen und Aktualisierungen durchzuführen. Siehe Folie 69 von Bill Karwins Models for Heirarchical Data .