Nested Sets: Möglich nach Titel oder gar einem Feld zu sortieren
Karl Heinz
- datenbank
Ich versuche gerade für mif rauszufinden, was die beste Möglichkeit ist ein komplexes Menüsystem aufzubauen.
Einfach und schnell zu realisieren ist wohl das Adjanzenzlistenmodell (Vater Sohn)
id titel to
Modell,Äste können beliebig angehängt und sehr schnell und simpel verschoben, gelöscht und sortiert werden. Also der Aufbau ist sehr einfach. Doch das Lesen ist wohl komplizierter, bestimmte Zweige, vor oder Rückwärts, Tiefen etc. sehr kompliziert
Nested-Sets-Modell
Hier ist es wohl genau andersrum, das Auslesen ist fast simpel.
Doch das Wesentliche was mich stört, ist die wie ich es verstanden habe, das keine Möglichkeit besteht, die einzelnen Bäume anders zu sortieren. Also zum Beispiel nach ABC oder gar nach einer weiteren Spalte.
Oder bin ich da auf dem Holzweg
Tach!
Nested-Sets-Modell
Hier ist es wohl genau andersrum, das Auslesen ist fast simpel.
Aber nur fast ...
Doch das Wesentliche was mich stört, ist die wie ich es verstanden habe, das keine Möglichkeit besteht, die einzelnen Bäume anders zu sortieren. Also zum Beispiel nach ABC oder gar nach einer weiteren Spalte.
Doch, auch das geht, wenn auch nicht ganz einfach. Am besten ist wohl, den zu verschiebenden Zweig zu extrahieren (temporäre Tabelle vielleicht), und von seinen LR-Werte den L-Wert vom Vater abzuziehen. Damit ist er neu von 1 bis n nummeriert, also ein eigenständiger Baum. Vom ursprünglichen Baum muss die Lücke geschlossen werden, also alle Werte >= dem R-Wert vom Vater müssen verringert werden. Anschließend nummerierst du den temporären Baum so, dass er zu seinem neuen Vater passt, also L und R addierst du den L-Wert vom neuen Vater. Nun im alten Baum die LRs >= dem R-Wert vom neuen Vater anpassen und die temporären Daten hinzufügen.
dedlfix.
Doch, auch das geht, wenn auch nicht ganz einfach. Am besten ist wohl, den zu verschiebenden Zweig zu extrahieren (temporäre Tabelle vielleicht), und von seinen LR-Werte den L-Wert vom Vater abzuziehen. Damit ist er neu von 1 bis n nummeriert, also ein eigenständiger Baum. Vom ursprünglichen Baum muss die Lücke geschlossen werden, also alle Werte >= dem R-Wert vom Vater müssen verringert werden. Anschließend nummerierst du den temporären Baum so, dass er zu seinem neuen Vater passt, also L und R addierst du den L-Wert vom neuen Vater. Nun im alten Baum die LRs >= dem R-Wert vom neuen Vater anpassen und die temporären Daten hinzufügen.
ALso du meinst, ich kopiere den Kompletten Zweig den ich sortieren möchte aus dem Verbund.
Anschliessend lösche ich den Orginalzweig aus dem Netsed Verbund
Bearbeite den kopierten Zweig
und füge ihn wieder an
??????
Und die Wahrscheinlichkeit das ich das alles ohne Fehler hinbekomme ich auch sehr grosssssssssssssss. Hast du vieleicht irgendwo ein Beispiel in der Hinterhand.
Michi
Tach!
ALso du meinst, ich kopiere den Kompletten Zweig den ich sortieren möchte aus dem Verbund.
Anschliessend lösche ich den Orginalzweig aus dem Netsed Verbund, Bearbeite den kopierten Zweig und füge ihn wieder an?
Und die Wahrscheinlichkeit das ich das alles ohne Fehler hinbekomme ich auch sehr grosssssssssssssss.
Achwas. Geh schrittweise vor und überprüf dabei die Zwischenergebnisse. Beispiele für das Verschieben von Knoten findet man im Netz. (Ob sie funktionieren oder nicht, sollte man sowieso erstmal im Labor untersuchen.)
dedlfix.
مرحبا
Doch das Lesen ist wohl komplizierter, bestimmte Zweige, vor oder Rückwärts, Tiefen etc. sehr kompliziert
Ja, dass kann ich bestätigen. Ich kann zwar die ID der aufrufenden Seite finden, aber allein schon die Liste rekursiv aufzubauen ist echt ein Akt.
Das sieht man auch, wenn man auf meiner Beispielseite einfach mal den Baum runterklickt. Umso tiefer man im Menu ist, desto länger braucht das Script zum laden.
mfg