phpbar.de logo

Mailinglisten-Archive

[php] Erste Kind-Elemente im Nested Sets Modell

[php] Erste Kind-Elemente im Nested Sets Modell

Tim TConnect at gmx.net
Mi Okt 12 10:08:50 CEST 2011


Hallo zusammen,

über das Nested Sets Modell findet man ja viele Quellen im Web und
allesamt sind eigentlich ganz eingänglich zu lesen. Ich habe allerdings
das Problem, dass ich genau den Fall umsetzen möchte, der z.B. auch auf
der Wikipedia-Seite als "schwierig" bezeichnet wird: Die direkten
Kind-Elemente eines gegebenen Knotens ermitteln.

In einigen Forenbeiträgen liest man immer wieder, die Gesamtmenge der
Kind-Elemente mittels HAVING in der SQL Abfrage nachträglich
einzugrenzen, aber da HAVING erst verwendet wird, nachdem bereits alle
Datensätze gelesen wurden, ergibt das für Knoten weit oben im Baum (und
erst recht für die Wurzel) mitunter sehr viele Ergebniszeilen (in meinem
Fall ungefähr 1000 für die Wurzel). Das ist natürlich nicht sonderlich
performant.

Hat jemand von Euch schon einmal eine elegantere Lösung geschrieben
(Hier speziell eine SQL-Abfrage, die das löst)?

Ich denke gerade darüber nach, dieses Modell mit dem Parent-Child-Modell
zu kreuzen. Es macht nur eine INT-Spalte mehr in der Tabelle aus und man
könnte für eine Abfrage, bei der man alle Kind-Elemente benötigt, das
Nested Sets Modell verwenden und für den Fall der direkten Kind-Elemente
dann das Parent-Child Modell (gerade bei AJAX-gestützen Websites, die
ULs nachladen). Aber das müsste erst noch entwickelt werden und wenn
schon eine elegantere Lösung nur im Bereich der Nested Sets existiert,
dann würde das die Sache natürlich deutlich vereinfachen.

Über eine Rückmeldung würde ich mich sehr freuen.

LG Tim

php::bar PHP Wiki   -   Listenarchive