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