Karl Heinz: Nested Sets: Möglich nach Titel oder gar einem Feld zu sortieren

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

  1. 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.

    1. 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

      1. 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.

  2. مرحبا

    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