Tom: Rekursives Auslesen von Datenbanken mit PHP

Beitrag lesen

Hello,

Das Problem dabei ist wahrscheinlich die Leserichtung.

Gehst Du vom untergeordneten Element aus, und suchst den Pfad zur Wurzel?
Oder gehst Du von der Wurzel aus, und suchst die Kindelemente.

Da es hier um die Darstellung geht, benötigst Du sowieso einiges an Speicher in der Schnittstelle. Da Deine Schnittstelle nun auch noch intelligent ist, gehst Du beim Lesen von der Wurzel einfach folgendermaßen vor:

Lese alle Sätze des Filterbereiches (Id und Parent) Level = 0
Lese alle Sätze, deren Parent in der Liste der IDs von Level 0 steckt (ID und Parent) Level = 1
Lese alle Sätze, deren Parent in der Liste der IDs von Level 1 steckt (ID und Parent) Level = 2

bis Du keine Sätze mehr bekommst.
Der Zusammenbau der Struktur im Speicher (als "Array") kostet weniger als ein Tausendstel gegenüber dem Lesen aus der DB.

Das ist dann pro Ebene ein Query.

Bei echter Rekursion könnten es leicht hunderte von Queries werden oder gar Tausende.

Harzliche Grüße vom Berg
http://www.annerschbarrich.de

Tom

--
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau