Ви згадуєте про найчастіше реалізований список списку суміжності:
https://blogs.msdn.microsoft.com/mvpawardprogram/2012/06/25/hierarchies-convert-adjacency-list-to-nested-sets
Є й інші моделі, включаючи матеріалізований шлях та вкладені набори:
http://communities.bmc.com/communities/docs/DOC-9902
Джо Селко написав книгу на цю тему, яка є хорошим посиланням із загальної точки зору SQL (про це йдеться у вкладеній статті вкладеного набору статей вище).
Крім того, Іцзік Бен-Ган має хороший огляд найпоширеніших варіантів у своїй книзі "Всередині Microsoft SQL Server 2005: T-SQL Querying".
Основні речі, які слід враховувати при виборі моделі, це:
1) Частота зміни структури - наскільки часто змінюється фактична структура дерева. Деякі моделі забезпечують кращі характеристики оновлення структури. Важливо відокремити зміни структури від інших змін даних. Наприклад, ви можете сформулювати організаційну схему компанії. Деякі люди змоделюють це як список суміжності, використовуючи ідентифікатор працівника, щоб зв’язати працівника зі своїм керівником. Зазвичай це недооптимальний підхід. Підхід, який часто працює краще, - це моделювати структуру організації окремо від самих працівників та підтримувати працівника як атрибут структури. Таким чином, коли працівник покидає компанію, сама організаційна структура не потребує змін, а лише асоціація з працівником, який пішов.
2) Чи дерево запису важке або важке для читання - деякі структури дуже добре працюють під час читання структури, але створюють додаткові накладні витрати під час запису до структури.
3) Які типи інформації вам потрібно отримати від структури - деякі структури надають перевагу в наданні певних видів інформації про структуру. Приклади включають пошук вузла та всіх його дітей, пошук вузла та всіх його батьків, пошук кількості дочірніх вузлів, що відповідають певним умовам тощо. Вам потрібно знати, яка інформація буде потрібна структурі, щоб визначити структуру, яка найкраще відповідатиме ваші потреби.