dedlfix: MySQL 5.0 alle Kinder auflisten

Beitrag lesen

Hi!

Stichwort: Nested Sets
danke

Sich Nested Sets bei solchen Baumstrukturen anzusehen lohnt sich immer. Ob sich deren Einsatz lohnt, kommt auf die Umstände an. NS sind aufwendig beim Ändern der Menge, da dabei viele Datensätze angefasst werden müssen. Änderungsstatements sind auch recht komplex, das notwendige Atomarisieren wurde schon erwähnt. Neben Transaktionen kann auch die Billigvariante mit Table-Locking in Frage kommen. MySQL kann Transaktionen nämlich nicht mit der verbreiteten MyISAM-Engine aber mit InnoDB. Auf der anderen Seite können Teilbereiche aus NS oftmals mit nur einem SQL-Statement abgefragt werden, was recht effizient ist, aber auch teilweise recht komplexe Statements erfordert.

Je nachdem, was du insgesamt vorhast, kann auch ein Serialized LOB eine Lösung sein. Vor allem, wenn der Datenbestand recht klein ist. Dabei wird die komplette Datenstruktur (beispielsweise ein (verschachteltes) Array in PHP) in einen String serialisiert und dieser gespeichert. Beim Lesen braucht man nur zu unserialisieren und hat die Struktur gleich fix und fertig vorliegen. Die Datensätze in Einzelteilen im DBMS abzulegen erfordert ja auch üblicherweise (egal ob NS oder Parent-Verweise) nach dem flachen Lesen, sie passend im Baum einzuhängen.

Lo!