Baumstruktur / Menü

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Baumstruktur / Menü

    Hi Ihr!
    Ich hab im Forum gesucht, aber nichts passendes gefunden.

    Ich will aus einer DB-Tabelle eine Baumstruktur bzw. ein Menü erstellen. Ich hab auch schon zwei Ansätze probiert. Einmal den mit parent-Attributen und einmal den mit nested-sets. Es haben auch beide funktioniert. Jedoch war immer einige Rekursion nötig.

    Die Methode mit den nested-sets finde ich an sich nicht schlecht, jedoch will ich Teilbäume nur bis zu einer bestimmten Ebene aufklappen. Mit einer Kombination aus beidem hat´s funktioniert, bin aber nicht zufrieden damit.

    Ich hoffe, ich konnte klarmachen, worauf ich hinaus will. Ich bin für Anregungen (ohne Rekursion) dankbar. Am liebsten wär mir ein knackiges SQL-Query und der DB-dumb dafür.

    Gruß oms
    {brigens Ein Kezboard/Treiber ist v;llig [berfl[ssig!

  • #2
    Nested Sets von Celko erscheint mir trotz der relativ komplexen Queries eine, gerade im Hinblick auf Performance, gute Lösung zu sein.

    Kommentar


    • #3
      Wo findet man diese nested-sets???
      mfg
      Günni


      Praxis: Jeder kann´s, aber keiner weiß wie´s geht...
      Theorie: Jeder weiß wie´s geht, aber keiner kann´s ...
      Microsoft vereint Praxis und Theorie: Nix geht und keiner weiß warum
      City-Tiger - Online durch die Straßen tigern...

      Kommentar


      • #4
        hier:
        http://www.php-resource.de/tutorials/read/21/1/
        und hier:
        http://www.sqlteam.com/item.asp?ItemID=8866
        und hier:
        http://users.starpower.net/rjhalljr/...SQL/traer.html

        oms
        {brigens Ein Kezboard/Treiber ist v;llig [berfl[ssig!

        Kommentar


        • #5
          z.B. auf dieser Site (php-resource.de) als Tutorial
          Ansonsten such' doch einfach mit Google nach Nested Sets...

          -> Ankündigung: erst suchen, dann posten !

          Kommentar


          • #6
            @Psyclonist

            Meinst du jetzt die Sache mit dem Pfad?
            {brigens Ein Kezboard/Treiber ist v;llig [berfl[ssig!

            Kommentar


            • #7
              @oms: Mmh.. welcher Pfad ? cih meinte eigentlich nur Günnis Frage

              Kommentar


              • #8
                Ich meinte die komplexen Queries. Welche meinst du da genau?

                Groß oms
                {brigens Ein Kezboard/Treiber ist v;llig [berfl[ssig!

                Kommentar


                • #9
                  @oms: Ich meinte Celko's Ansatz... Denke, ich werd' mich auf den stürzen... Hoffe die SW mit Transaktionen sicher zu bekommen...

                  Kommentar


                  • #10
                    Nochmal zum Thema.
                    Ich habe folgende Tabelle:

                    CREATE TABLE nested_sets (
                    id int(11) NOT NULL auto_increment,
                    lft int(11) NOT NULL,
                    rgt int(11) NOT NULL,
                    caption varchar(255),
                    PRIMARY KEY (id)
                    );

                    ...und ich beziehe mit auf das Tutorial von
                    Daniel T. Gorski.
                    Die Beispieldaten sehen genau so aus: http://poolwater.de/test/nestedsets6.gif

                    Ich brauche nun eine Abfrage, die mir folgendes liefert, wenn zum Beispiel die id=9 gegeben ist:

                    id,caption,level
                    -------------------------------
                    1, A, 1
                    2, B, 2
                    5, F, 2
                    7, G, 3
                    8, H, 3
                    9, I, 4
                    10, J, 5
                    12, L, 5
                    13, M, 4

                    Ich bin für Hifle dankbar.
                    {brigens Ein Kezboard/Treiber ist v;llig [berfl[ssig!

                    Kommentar


                    • #11
                      Da sich die Antworten hier ein bißchen schleppend sammel, hab ich mal ne Access DB zusammen gestellt. Darin sind auch meine bisherigen Abfragen enthalten.

                      Was ich bis jetzt habe sind Queries für den gesamten Baum, Teilbäume, den Pfad zu entspechenden nodes und die direkten children eines nodes.
                      Die Abfrage für´s komplette Menü/Baum funktioniert nicht. Irgendwie liegt es an der Aggregatfunktion...

                      Ich brauche im Prinzip "nur" eine Abfrage, die mir die direkten Children der nodes liefert, die im Pfad enthalten sind. Ich krieg´s nicht auf die Reihe. Mit subqueries wär´s kein Problem. Ich will das Ding dann aber auf MySQl 3.23 loslassen, also ohne SubSELECTs.

                      Danke schonmal
                      Angehängte Dateien
                      {brigens Ein Kezboard/Treiber ist v;llig [berfl[ssig!

                      Kommentar


                      • #12
                        Ein Link

                        http://www.php4-forum.de/forum.php3?nr=71744&site=0

                        Kommentar

                        Lädt...
                        X