Robert: Suche Nested Sets Tutorial

Hallo,

ich bin auf der Suche nach einem guten Tutorial zu Nested Sets.
Ich möchte damit anfangen ein Menü mit Untermenüs zu erstellen und darauf hinarbeiten, dass jedes Untermenü wieder beliebig viele Untermenüs entahlten kann.
Später möchte ich das ganze einmal auf ein Forum anwenden.

Ich bin auch gerne bereit mir ein Buch zuzulegen, solange die Erklärung wirklich von Anfang an nachvollziehbar ist und man nicht ins kalte Wasser geworfen wird.

Gruß, Robert

  1. Hi,

    ich fang mal erstmal vorsichtig mit einer Gegenfrage an: Ich kenne das Nested-Sets -Modell nur zur Abbildung nur zur Abbildung von komplexen Baumstrukturen (beliebig viele Kinder, komplexe Verschachtelung, wechselnde Typen). Ein Menü ist doch eigentlich eine ziemlich einfache Sache: Ein Menü-Eintrag hat eine feste Struktur und entweder hat er noch einen Vater oder eben nicht, also etwa:
    MenuItem = (ID, Parent_ID, Text, Beschreibung, Icon, Link, ..., )
    Parent-ID ist eine Foreign-Key-Referenz auf die MenuItem-Tabelle selber, für Top-Level-Elemente wird null eingetragen.
    Etwas komplexer wird es höchstens, wenn du darauf bestehst auch beim Eltern-Element die Kinder festzuhalten, dann bräuchtest du noch eine zweite Tabelle. In beiden Fällen kann der gesamte Baum entweder mittels eines rekursiven oder mittels mehrerer einzelner Abfragen ebenenweise wiederhergestellt werden.
    Natürlich bräuchtest du noch so ein paar Scherze wie einen Ordnungs-Index um die Menüpunkte zu sortieren etc....

    MfG
    Rouven

    --
    -------------------
    ss:) zu:) ls:& fo:) de:< va:{ ch:? sh:) n4:( rl:? br:$ js:| ie:) fl:(
    1. Ich möchte gerne wie gesagt ein Menü mit beliebig vielen Untermenüs erstellen und das später auch auf ein Forum anwenden (beliebig viele Unterforen, die ihrerseits wieder Unterforen enthalten können, usw.)
      Wenn das auch anders als mit nested sets geht, kein Problem, ich brauche nur ein Tutorial, das so etwas gut verständlich erklärt. :)

      1. Hallo Robert,

        Wenn das auch anders als mit nested sets geht, kein Problem, ich brauche nur ein Tutorial, das so etwas gut verständlich erklärt. :)

        hast Du schon einmal die Forumssuche bemüht? Mit dem Stichwort "nested set", auf das man bei Deiner Fragestellung kommen könnte, gibt es eine durchaus übersichtliche Ergebnismenge in den letzten beiden Jahren. Schau' Dir doch einmal dieses Archivposting von dedlfix an.

        Freundliche Grüße

        Vinzenz

        1. Hallo Robert,

          Wenn das auch anders als mit nested sets geht, kein Problem, ich brauche nur ein Tutorial, das so etwas gut verständlich erklärt. :)

          hast Du schon einmal die Forumssuche bemüht? Mit dem Stichwort "nested set", auf das man bei Deiner Fragestellung kommen könnte, gibt es eine durchaus übersichtliche Ergebnismenge in den letzten beiden Jahren. Schau' Dir doch einmal dieses Archivposting von dedlfix an.

          Freundliche Grüße

          Vinzenz

          Danke, ich werde mir das mal ansehen, und wieder posten, wenn etwas nicht klar ist. :)

  2. echo $begrüßung;

    ich bin auf der Suche nach einem guten Tutorial zu Nested Sets.

    Tipps hast du ja schon bekommen. Hier noch kurz zu den Vor- und Nachteilen zu Nested Sets (die mir grade einfallen).

    Das Hinzufügen und Entfernen von Einträgen ist recht aufwändig. Es sind 3 Befehle nötig, die auch noch einen (mal mehr, mal weniger) großen Teil der Datensätze ändern müssen. Hinzu kommt noch das Table-Locking, damit es nicht zu falschen Ergebnissen beim Auslesen kommt, wenn grade die Änderungsprozedur läuft.
    Der Vorteil ist, dass eine Menge Teilbäume betreffende Abfragen mit einer einzigen SQL-Abfrage erledigt werden können. Bei einfach verketteten Listen muss man dazu oft rekursive Abfragen verwenden.

    echo "$verabschiedung $name";