Sie erwähnen die am häufigsten implementierte Adjacency List:
https://blogs.msdn.microsoft.com/mvpawardprogram/2012/06/25/hierarchies-convert-adjacency-list-to-nested-sets
Es gibt auch andere Modelle, einschließlich materialisierter Pfade und verschachtelter Mengen:
http://communities.bmc.com/communities/docs/DOC-9902
Joe Celko hat ein Buch zu diesem Thema geschrieben, das aus allgemeiner SQL-Sicht eine gute Referenz darstellt (es wird im obigen Link zu verschachtelten Artikeln erwähnt).
Außerdem hat Itzik Ben-Gann in seinem Buch "Inside Microsoft SQL Server 2005: T-SQL-Abfrage" einen guten Überblick über die häufigsten Optionen.
Die wichtigsten Dinge, die bei der Auswahl eines Modells zu beachten sind, sind:
1) Häufigkeit der Strukturänderung - Wie häufig ändert sich die tatsächliche Struktur des Baums? Einige Modelle bieten bessere Strukturaktualisierungseigenschaften. Es ist jedoch wichtig, Strukturänderungen von anderen Datenänderungen zu trennen. Beispielsweise möchten Sie möglicherweise das Organigramm eines Unternehmens modellieren. Einige Personen modellieren dies als Adjazenzliste und verwenden die Mitarbeiter-ID, um einen Mitarbeiter mit seinem Vorgesetzten zu verknüpfen. Dies ist normalerweise ein nicht optimaler Ansatz. Ein Ansatz, der häufig besser funktioniert, besteht darin, die Organisationsstruktur getrennt von den Mitarbeitern selbst zu modellieren und den Mitarbeiter als Attribut der Struktur beizubehalten. Wenn ein Mitarbeiter das Unternehmen verlässt, muss die Organisationsstruktur selbst nicht geändert werden, sondern nur die Zuordnung zu dem Mitarbeiter, der das Unternehmen verlassen hat.
2) Ist der Baum schreib- oder leselastig? Einige Strukturen funktionieren beim Lesen der Struktur sehr gut, verursachen jedoch zusätzlichen Aufwand beim Schreiben in die Struktur.
3) Welche Arten von Informationen benötigen Sie, um von der Struktur zu erhalten? Einige Strukturen bieten bestimmte Arten von Informationen über die Struktur. Beispiele sind das Finden eines Knotens und aller seiner untergeordneten Knoten, das Finden eines Knotens und aller seiner Eltern, das Finden der Anzahl der untergeordneten Knoten, die bestimmte Bedingungen erfüllen usw. Sie müssen wissen, welche Informationen von der Struktur benötigt werden, um die Struktur zu bestimmen, die am besten passt Deine Bedürfnisse.