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. Adjacency List Model – Jeder Knoten speichert die ID seines Elternknotens (Parent-ID
  2. Nested Sets – Verschachtelte Mengen
  3. Edge List

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

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

Scripte

Folgende Artikel könnten auch interessieren

ddd