Mailinglisten-Archive |
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