Nested Sets mit dem Zend Framework realisieren

Alexander hat in seinem Zend Framework Blog einen interessanten Beitrag über die Umsetzung von Nested Sets mit der Zend_Db Komponente des Zend Frameworks geschrieben. Er verweist auf den Blog von Ivan Iordanov, welcher seine Erweiterung zu Zend_Db vorstellt, mit der man Nested Sets mit dem Zend Framework umsetzen kann. Dort findet man sowohl den kompletten Code als auch ein Anwendungsbeispiel.

Doch was sind eigentlich ein Nested Sets oder zu deutsch verschachtelte Mengen? Wikipedia behauptet folgendes:

Der Begriff Nested Sets (verschachtelte Mengen) bezeichnet ein Modell zur Abbildung eines Baumes mit Hilfe von Mengen, die ineinander verschachtelt sind. Dabei wird die “ist-Kind-von”-Beziehung auf eine “ist-Teilmenge-von”-Beziehung abgebildet.

Anders ausgedrückt handelt es sich bei Nested Sets um Baumstrukturen, die man in einer relationalen Datenbank, z.B. MySQL abbildet, und bei denen jeder Datensatz einen LEFT und einen RIGHT Wert enthält, anhand dessen der Baum aufgebaut und sortiert werden kann. Nested Sets bieten sich für alle hierarchischen Datenmengen an, wie z.B. Navigationsbäume oder Kategorisierungen mit beliebig vielen verschachtelten Ebenen. Manch einer realisiert sogar sein Forum mit Nested Sets.

Man sollte dabei aber im Hinterkopf behalten, dass das Lesen von Nested Sets sehr schnell vonstatten geht. Das Schreiben in einer Nested Sets Struktur kann aber unter Umständen sehr “teuer” sein, d.h. vergleichsweise lange dauern. Gerade das Einfügen “oben” in einem Baum oder das Verschieben von Teilbäumen kann mitunter bedeuten, dass sehr viele Einträge in der Datenbanktabelle geändert werden müssen. Somit eignen sich Nested Sets besonders für Datenmengen, die viel gelesen aber wenig verändert werden.

Hinterlasse eine Antwort