Speicherung von Bäumen
Das speichern von Baumstrukturen in einer relationalen Datenbank kann man mit verschiedenen Methoden bewerkstelligen. Einige davon sind sehr einfach, aber bei großen Datenmengen nicht sehr effizient und für einige Arten von Bäumen nicht einmal geeignet. Einige Methoden sind hingegen sehr effizient, es gestaltet sich aber etwas komplizierter wenn man den Baum dann manipulieren will. Dafür muss man in den meisten Fällen den kompletten Baum in der Datenbank neu organisieren.
Folgende Methoden gibt es
- Adjacency List Model – Jeder Knoten speichert die ID seines Elternknotens (Parent-ID
- Nested Sets – Verschachtelte Mengen
- Edge List
- …
Parent ID Tree / Adjacency List Model / Edge list
Weblinks
Nested Sets
Die Speicherung und Organisation eines Nested Sets Baum sowie die Darstellung kann sich als sehr kompliziert herausstellen. Besonders bei der Ausgabe von geschachtelten Strukturen wie z.B. UL/LI-Listen.
Weblinks zu Nested Sets Trees
- Nested Sets – Artikel von Arne Klempert in deutsch
- Artikel zum Thema Nested Sets
- Artikel zum Thema auf traum-projekt.de
- Workshop NestedSets
Allgemein über Bäume in Mysql
Etwas zur Performance
Begriffsklärung
- Root – Wurzel
- Leaf – Blatt
- Branch – Zweig
- Node – Knoten
- Ancestry – Vorfahre
- Descendant – Nachfahre
- Parent – Eltern
- Child – Kind
- Siblings – Geschwister
- Path – Pfad über die Knoten
Weblinks Allgemein
- navigation TreeDec
- TreeDec Beispiel
- Trees and Other Hierarchies in MySQL
- Wikipedia: Baum (Graphentheorie)
- Wikipedia: Balancierter Baum
- Wikipedia: Nested Sets
- Wikipedia: Kategorie: Datenstrukturen
- nls tree – Treecontrol Script