Lei cita il più comunemente implementato, che è l'elenco di adiacenza:
https://blogs.msdn.microsoft.com/mvpawardprogram/2012/06/25/hierarchies-convert-adjacency-list-to-nested-sets
Esistono anche altri modelli, tra cui percorso materializzato e set nidificati:
http://communities.bmc.com/communities/docs/DOC-9902
Joe Celko ha scritto un libro su questo argomento, che è un buon riferimento da una prospettiva SQL generale (è menzionato nel link dell'articolo set nidificato sopra).
Inoltre, Itzik Ben-Gann ha una buona panoramica delle opzioni più comuni nel suo libro "Inside Microsoft SQL Server 2005: T-SQL Querying".
Le cose principali da considerare quando si sceglie un modello sono:
1) Frequenza del cambio di struttura - con quale frequenza cambia la struttura reale dell'albero. Alcuni modelli offrono migliori caratteristiche di aggiornamento della struttura. Tuttavia, è importante separare le modifiche alla struttura dalle altre modifiche ai dati. Ad esempio, potresti voler modellare l'organigramma di un'azienda. Alcune persone modelleranno questo come un elenco di adiacenza, usando l'ID dipendente per collegare un dipendente al proprio supervisore. Questo è di solito un approccio non ottimale. Un approccio che spesso funziona meglio è modellare la struttura organizzativa separatamente dagli impiegati stessi e mantenere l'impiegato come un attributo della struttura. In questo modo, quando un dipendente lascia l'azienda, la struttura organizzativa stessa non deve essere modificata, ma solo l'associazione con il dipendente che ha lasciato.
2) L'albero è pesante per la scrittura o pesante per la lettura - alcune strutture funzionano molto bene durante la lettura della struttura, ma comportano un sovraccarico aggiuntivo quando si scrive sulla struttura.
3) Quali tipi di informazioni sono necessari per ottenere dalla struttura - alcune strutture eccellono nel fornire determinati tipi di informazioni sulla struttura. Gli esempi includono trovare un nodo e tutti i suoi figli, trovare un nodo e tutti i suoi genitori, trovare il conteggio dei nodi figlio che soddisfano determinate condizioni, ecc. È necessario sapere quali informazioni saranno necessarie dalla struttura per determinare la struttura che si adatterà meglio I tuoi bisogni.