Immer wieder stellt sich die Aufgabe aus einer Datenbank eine hierarchische Struktur, also einen Baum zu erstellen.
In der Webprogrammierung sind die häufigsten Aufgaben das Erstellen von Strukturen für Produkte, Rubriken, Themen, Berechtigungen (Gruppen in Gruppen), Seitenstrukturen, usw.
Die beiden wohl am meisten verbreiteten Arten zur Abbildung von Bäumen in Datenbanken sind die
klassischen Parent - Child Bäume und
Nested Sets.
Nested Sets sind schick, lesend super schnell aber irgendwie sind sie doch meistens zu kompliziert sobald es dran geht den Baum schreibend zu pflegen.
Die klassischen Parent - Child Bäume haben dagegen den Ruf zwar einfach pflegbar, aber im lesenden Zugriff (vor allem auf Teilbäume) eher inperformant zu sein.
Oft kommen hier rekursive Funktionen zum Einsatz, vor allem um von einem Blatt wieder zurück zur Root zu kommen.
Wenn man den Baum aber "nur" aus Referenzen auf eine "flache" Liste der Knoten aufbaut, hat man damit einen schnellen, einfachen und direkten Zugriff auf alle Teilbäume.