Bạn đề cập đến việc được triển khai phổ biến nhất, đó là Danh sách điều chỉnh:
https://bloss.msdn.microsoft.com/mvpawardprogram/2012/06/25/hierarchies-convert-adjacency-list-to-nested-sets
Ngoài ra còn có các mô hình khác, bao gồm đường dẫn được vật chất hóa và các tập hợp lồng nhau:
http://cransities.bmc.com/cransities/docs/DOC-9902
Joe Celko đã viết một cuốn sách về chủ đề này, đây là một tài liệu tham khảo tốt từ quan điểm SQL chung (nó được đề cập trong liên kết bài viết tập hợp lồng nhau ở trên).
Ngoài ra, Itzik Ben-Gann có một cái nhìn tổng quan về các tùy chọn phổ biến nhất trong cuốn sách "Inside Microsoft SQL Server 2005: Truy vấn T-SQL".
Những điều chính cần xem xét khi chọn một mô hình là:
1) Tần suất thay đổi cấu trúc - tần suất thay đổi cấu trúc thực tế của cây. Một số mô hình cung cấp các đặc điểm cập nhật cấu trúc tốt hơn. Tuy nhiên, điều quan trọng là phải tách các thay đổi cấu trúc khỏi các thay đổi dữ liệu khác. Ví dụ: bạn có thể muốn lập mô hình sơ đồ tổ chức của công ty. Một số người sẽ mô hình hóa nó như một danh sách kề, sử dụng ID nhân viên để liên kết một nhân viên với người giám sát của họ. Đây thường là một cách tiếp cận phụ tối ưu. Một cách tiếp cận thường hoạt động tốt hơn là mô hình hóa cấu trúc org tách biệt với chính nhân viên và duy trì nhân viên như một thuộc tính của cấu trúc. Theo cách này, khi một nhân viên rời khỏi công ty, bản thân cấu trúc tổ chức không cần phải thay đổi, chỉ cần sự liên kết với nhân viên còn lại.
2) Cây viết nặng hay đọc nặng - một số cấu trúc hoạt động rất tốt khi đọc cấu trúc, nhưng phải chịu thêm chi phí khi ghi vào cấu trúc.
3) Những loại thông tin nào bạn cần có được từ cấu trúc - một số cấu trúc nổi trội trong việc cung cấp các loại thông tin nhất định về cấu trúc. Các ví dụ bao gồm tìm một nút và tất cả các con của nó, tìm một nút và tất cả các cha mẹ của nó, tìm số nút con đáp ứng các điều kiện nhất định, v.v. Bạn cần biết thông tin nào sẽ cần từ cấu trúc để xác định cấu trúc phù hợp nhất bạn cần.