dedlfix: Nested Sets - nur teilweise aufklappen

Beitrag lesen

Hi!

Wie unschwer zu erkennen ist, will ich nur den Weg zum aktuellen Ast anzeigen und dessen Kinder (in diesem Fall: Mäuse).

Betrachte in einem solchen Fall immer die L- und R-Werte der Knoten, die du haben möchtest und diejenigen von denen du sie nicht haben möchtest. Finde dazu die Gesetzmäßigkeit. Für manche Fälle ist es auch noch hilfreich, zur einfacheren Abfrage eine Level-Spalte extra mitzuführen, wobei man das Level aber auch gegen den Aufpreis eines Subselects rausbekommt.

Wenn du auf Primaten stehst[*] willst du alle Elemente mit L größer dem Primaten-L und R kleiner dem Primaten-R, was die Kinder ergibt. Zudem willst du alle Elemente mit einem Level kleiner oder gleich dem von Primaten.

Schwieriger wird es bei weiteren Verschachtelungen, denn wenn du da nach dem Level gehst, klappt es auch Neffen und Nichten auf. Wenn du Halbaffen anzeigst, willst du (neben dessen Kindern und den Baum hochzu) nur die Affen und Nagetiere, nicht aber die Unterordnungen der Nagetiere, die ja auf dem gleichen Level sind wie die Halbaffen.

Säugetiere
   Primaten
       Halbaffen
           Feuchtnasenaffen
           Trockennasenaffen
       Affen
           Neuweltaffen
           Altweltaffen
   Nagetiere
       Hörnchenverwandte
           Brötchen
           Croissant
           Baguette
       Biberverwandte
           ...
       Mäuseverwandte
       Dornschwanzhörnchenverwandte
       Stachelschweinverwandte

Da fallen mir nur mehrfache Einzelabfragan ein, die mit UNION verbunden werden, wobei dabei gleich Dopplungen rausfallen.

  • alle Kinder der Halbaffen
  • Parent und dessen Level ermitteln
      - alle mit gleichem oder kleinerem Level
      - alle Kinder mit einem Level eins größer als Parent

Das wird noch komplexer, je weiter runter du im Bum steigst und je weniger niedrigere Level du aufgeklappt darstellen willst. Aber vielleicht hab ich da nur eine Gesetzmäßigkeit übersehen, die das Ganze einfacher macht.

Leider erklärt Arne nur, wie man den gesamten Baum anzeigt ODER den Pfad zu einem Kind.

Es gibt auch mindestens ein Tutorial, das mehr Abfragen zeigt, unter anderem auch in Verbindung mit dem Level.

[*] Schönen Gruß von der Doppeldeutigkeit.

Lo!