Baumstruktur auslesen

teppi

Erfahrenes Mitglied
Hallo !

Ich habe ein Problem, wo ich wirklich nich weiterkomme. Ich hoffe ihr könnt mir helfen. Ich habe eine Tabelle, in welcher eine Ordnerstruktur als Baum gespeichert ist.

Grob kann man sich das so vorstellen:

Ordner_ID, Name, Father_ID

Kann mir jemand sagen, ob es möglich ist, die Ordnerstruktur schon per Query auszulesen. Also das bspw. zu jeder Ordner_ID ein konkatinierter String rauskommt, der bspw. so aussehen könnte:

"Person ~ Vorname ~ Fred" .. und den gesamten Weg durch dem Baum bis zum Blatt darstellt. Die Wurzel des Baumes hat immer eine bestimmte ID.

Die Datenbank ist eine MS-SQL Datenbank.

Vielen Dank im voraus,
beste Grüße,

Stefan Lehmann
 
Wenn MS-SQL dazu keine speziellen Methoden bereitstellt (wovon ich ausgehe), kannst Du bei der Abbildungsform nicht mit einem Query den Pfad zur Wurzel oder ähnliche Abfragen machen.

Du kannst zwar mit mehreren Joins eine definierte Anzahl Ebenen durchlaufen, aber nicht beliebige Knoten mit dem gleichen Query bis zur Wurzel abfragen.

Üblicherweise löst man die Abfragen auf diese Abbildungsform rekursiv, Beispiel:
Code:
funktion getChildren(parent) {
    select * from `tree` where `parent`=parent
    foreach ergebnis {
        zeile ausgeben
        getChildren(zeile->id)
    }
}
getChildren(0)
Umgekehrt kann man das natürlich auch machen, um den Baum zur Wurzel zu verfolgen.

Gruß hpvw
 
Zurück