Ankündigung

Einklappen
Keine Ankündigung bisher.

Nested Sets und Silbings

Einklappen

Neue Werbung 2019

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

  • Nested Sets und Silbings

    Kann mir jemand sagen wie man alle Siblings eines Knotens in einer Nested Set Struktur auslesen kann?


  • #2
    Vielleicht bin ich einfach nur unwissend, aber was sind "Silbings"?
    Links zu "nested sets":
    http://ffm.junetz.de/members/reeg/DS...00000000000000
    http://www.klempert.de/php/nested_sets/
    privater Blog

    Kommentar


    • #3
      http://dict.leo.org/?search=sibling
      Code:
           parent
           |    |
      sibling1 sibling2

      Kommentar


      • #4
        Ah, konnte gerade sibling nicht mit silbing assoziieren.
        privater Blog

        Kommentar


        • #5
          Die Links konnten mir leider nicht weiterhelfen, sonst niemand eine idee??

          Kommentar


          • #6
            Der left-Wert des nächsten Sibling ist immer eins größer als der right-Wert des aktuellen Elementes, wenn ich mich jetzt nicht völlig vertue.

            Kommentar


            • #7
              Ja soweit bin ich auch schon gekommen, allerdings bekomm ich keine Abfrage hin die mir alle Siblings ausgibt.

              Kommentar


              • #8
                Eine Abfrage, mit der alle Geschwister eines Elements ermittelt werden können, fällt mir so auf die Schnelle nicht ein. Das müsstest du dann wohl so realisieren, dass du für das aktuelle Element das nächste Sibling ermittelst und dann diese Funktion nun für das ermittelte Sibling aufrufst (das Ganze dann dynamisch mittels einer Schleife).

                Kommentar


                • #9
                  Naja das ist nicht wirklich die Lösung die ich suche. Man müßte ja auch auf- und absteigend die Siblings ermitteln. Ein besserer Ansatz wäre dann wohl den Parent zu ermitteln und von dem ausgehen alle Kinder der ersten Ebene.
                  Da ich diese Funktionalität nur zum bearbeiten des Baums benötige ist der dabei entstehende Overhead zu verschmerzen.

                  Kommentar


                  • #10
                    Du kannst ja mit einer Abfrage alle Kindknoten ermitteln und das Level dazu:

                    Code:
                    SELECT s.Name, count(*) AS Level
                        FROM NestedSet v, NestedSet s
                        WHERE s.l BETWEEN v.l AND v.r
                        GROUP BY s.l
                    Wenn du nun die Bedingung Level = 2 einfügst, hast du alle direkten Nachfahren. Fehlt nurnoch den Root-Knoten für die Abfrage zu setzen. Frag mich nicht, wie...

                    Basti

                    Kommentar


                    • #11
                      Zitat von Basti
                      Du kannst ja mit einer Abfrage alle Kindknoten ermitteln und das Level dazu: [...]
                      Stimmt, auf die Idee war ich jetzt gar nicht gekommen.

                      Kommentar

                      Lädt...
                      X