MySQL - Wiederholung einer Baumstruktur

8

Ich habe eine Datenbanktabelle, die Standorte miteinander verbindet; Ein Standort kann sich an einem Ort befinden, der sich an einem anderen Ort befinden kann.

%Vor%

Hier ist die MySQL / PHP für eine Tiefe von eins:

%Vor%

Wie bekomme ich bei einem übergeordneten Standort alle seine untergeordneten Standorte, egal wie tief sie sind, nur mit MySQL?

    
Extrakun 04.03.2010, 11:02
quelle

4 Antworten

20

Es gibt ein gut aussehender Artikel über mysql.com, der verschiedene Möglichkeiten zur Verwaltung hierarchischer Daten skizziert. Ich denke, es bietet eine vollständige Lösung für Ihre Frage und zeigt verschiedene weniger einfache, aber schnellere Ansätze (z. B. verschachtelte Sets).

    
Pekka 웃 04.03.2010, 11:07
quelle
1

MySQL hat keine native Unterstützung für hierarchische Funktionen, daher müssen Sie sie mithilfe von Sitzungsvariablen emulieren, um den Rekursionsstatus beizubehalten.

Siehe diesen Artikel zur Implementierung der Funktion:

Quassnoi 04.03.2010 11:07
quelle
0

Eine viel bessere Art, diese Art von Daten zu verwalten, ist die Modified Preorder Tree Traversal-Methode:

Ссылка

hth

w: //

    
iwayneo 04.03.2010 11:06
quelle
0

Da mysql-Anweisungen nur tabellenstrukturierte Daten zurückgeben können, wie stellen Sie sich die zurückgegebene Baumstruktur vor?

Es ist möglich, eine Auswahl mit [parent_id, child_id] -Tabelle zu treffen, aber es erfordert eine temporäre Tabelle und ich habe es in DB2 gesehen, nicht in MySQL.

Überprüfen Sie diesen Artikel für die Implementierung in baumartigen Strukturen, die in MySQL gespeichert sind: Ссылка

    
Eimantas 04.03.2010 11:06
quelle

Tags und Links