Baumstrukturen in der Programmierung. Das Leid von Eltern, Kindern, Geschwister, usw…

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

  1. Parent ID – normaler Baum mit Eltern und Kinter Hirachiesch
  2. Adjacency List Model – Beispiel
  3. Edge List
  4. Nested Sets

Vor- und Nachteile der beiden Methoden

Hier einige gute Atikel dazu:

Parent ID / 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

 

Allgemein über Bäume in Mysql

Etwas zur Performance

Begriffe

  • 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

Scripte

Folgende Artikel könnten auch interessieren