phpbar.de logo

Mailinglisten-Archive

[php] [OT] Nested Set mit mehr als einem Vorfahren?

[php] [OT] Nested Set mit mehr als einem Vorfahren?

Niels Jäckel niels.jaeckel at silice.de
Die Mai 22 22:16:44 CEST 2007


Hallo Ralf,

> Sorry, ich muss ehrlich sagen, dass ich dir nicht ganz folgen kann. Ich
> weiss ja, ich mehrere Äste habe. Die Frage zielt aber darauf ab, wie ich
> dies in eine geeignete Datenstruktur übernehmen kann, da mein bisheriges
> Nested Set Modell bei dieser Anforderung an seine Grenzen stösst.

ich würde die Struktur andersherum aufziehen. Derzeit operierst du von 
der Wurzel aus und definierst rechte/linke Nachfolger. Ich würde jedoch 
bei den atomaren Werten beginnen (unten) und jeweils den Vorgänger 
angeben. So werden Baumstrukturen normalerweise abgebildet. Die für dich 
interessante Erweiterung des Ansatzes ist einfach, dass du mehr als 
einen Vorgänger angeben kannst. Vgl. Mehrfachvererbung.

Tabellenlayout z.B.:

TEXTE(_ID_, TEXT) -- ID ist Primärschlüssel
BEZIEHUNGEN(_IDTEXT_, _IDPARENT_) -- IDKombination ist Primärschlüssel

Wenn du einen Text mehreren Knoten unterordnen willst, dann schreib 
einfach mehrere Einträge in die Beziehungstabelle... Das Selektieren 
einer ganzen Ebene ist dann auch recht schnell, indem du alle IDs aus 
der Beziehungstabelle holst, deren ParentID soundso ist.

Ich habe mir dieser Standardstruktur schon recht große Bäume bearbeitet 
und hatte nie Performanceprobleme...


Grüße,
Niels

php::bar PHP Wiki   -   Listenarchive