phpbar.de logo

Mailinglisten-Archive

[php] [1/2 OT] Bäume abbilden

[php] [1/2 OT] Bäume abbilden

Lutz Zetzsche Lutz.Zetzsche at sea-rescue.de
Don Jan 20 14:36:53 CET 2005


Hi Sorin,

Sorin Marti schrieb:
> Ich möchte gerne mit PHP und MySQL eine Baumstruktur abbilden. Hat
> jemand schon Erfahrungen damit? Wie macht ihr das?
>
> Ich habe einige Nachforschungen angestellt und habe 2 Modelle immer
> wieder angetroffen:
>
> - Über Parent abbilden
> - NestedSets
>
> Beim ersten werden die Einzelnen Baumblätter mit der Vater-Id
> abgespeichert, bei den Nested Sets definiert man Vorgänger (Nodes
> "links") und Nachfolger (Nodes "rechts").
>
> Welche Vor-/Nachteile haben die Modelle? Gibt es andere?

nach meiner Erinnerung verhält es sich grob so: Beim Parent-Modell lassen
sich die Datenstrukturen einfacher pflegen, beim Nested Sets-Modell lassen
sie sich besser auslesen.

Beim Parents-Modell kannst Du halt eine neue Hierarchie einfach einhängen
und eine bestehende einfach umhängen. Bei Auslesen mußt Du jedoch mit
mehreren Datenbankabfragen rekursiv die Daten aus der Datenbank holen.

Beim Nested Sets-Modell mußt Du bei Änderungen der Hierarchie die LFT- und
RGT-Zahlenpaare bei allen betroffenen Datensätzen ändern. Das Auslesen von
Datenstrukturen läßt sich hingegen wiederum recht einfach mit einer
einzigen Datenbankabfrage erledigen.

Ich formuliere das mal so laienhaft und hoffe, daß es zum einen trotzdem
vollständig richtig und zum anderen verständlich ist. ;-)

Zur Vertiefung suche mal in Google mit "nested sets". Das liefert Dir ganz
oben folgende Seiten:

     - http://www.develnet.org/36.html
     - http://www.klempert.de/php/nested_sets/


Viele Grüße

Lutz


php::bar PHP Wiki   -   Listenarchive