można wymienić najczęściej wdrożone, który jest adjacency Lista: https://blogs.msdn.microsoft.com/mvpawardprogram/2012/06/25/hierarchies-convert-adjacency-list-to-nested-sets
Istnieją inne modele, jak również, w tym zmaterializowanej ścieżkę i zagnieżdżonych zestawów: http://communities.bmc.com/communities/docs/DOC-9902
Joe Celko napisał książkę na ten temat Temat, który jest dobrym odnośnikiem z ogólnej perspektywy SQL (jest wspomniany w powyższym linku zagnieżdżonego zestawu artykułów).
Ponadto Itzik Ben-Gann ma dobry przegląd najczęstszych opcji w swojej książce "Inside Microsoft SQL Server 2005: T-SQL Querying".
Główne rzeczy do rozważenia przy wyborze modelu to:
1) Częstotliwość zmiany struktury - jak często ma rzeczywistą strukturę zmianą drzewa. Niektóre modele zapewniają lepszą charakterystykę aktualizacji struktury. Ważne jest jednak oddzielenie zmian struktury od innych zmian danych. Na przykład możesz modelować wykres organizacyjny firmy. Niektórzy ludzie będą modelować to jako listę przyległości, używając identyfikatora pracownika, aby powiązać pracownika z przełożonym. Zwykle jest to podejście nieoptymalne. Podejście, które często działa lepiej, polega na modelowaniu struktury organizacyjnej odrębnej od samych pracowników i utrzymaniu pracownika jako atrybutu struktury. W ten sposób, gdy pracownik opuszcza firmę, sama struktura organizacyjna nie musi być zmianą, tylko związek z pozostawionym pracownikiem.
2) Czy drzewo jest ciężkie lub ciężkie do przeczytania - niektóre struktury działają bardzo dobrze podczas czytania struktury, ale ponoszą dodatkowe obciążenie podczas pisania do struktury.
3) Jakie rodzaje informacji należy uzyskać ze struktury - niektóre struktury wyróżniają się dostarczaniem określonych informacji o strukturze. Przykłady obejmują znalezienie węzła i wszystkich jego elementów podrzędnych, znalezienie węzła i wszystkich jego rodziców, znalezienie liczby węzłów podrzędnych spełniających określone warunki itd.Musisz wiedzieć, jakie informacje będą potrzebne ze struktury, aby określić strukturę, która najlepiej pasuje do Twoich potrzeb.
Zobacz: [Jakie są opcje przechowywania danych hierarchicznych w relacyjnej bazie danych?] (Http://stackoverflow.com/questions/4048151/what-are-the-options- for-storing-hierarchical-data-in -a-relacyjna-baza danych) – cbare
Serwer SQL (od 2008 r.) oferuje [typ danych hierarchii] (https://msdn.microsoft.com/en-us/library/bb677290.aspx) – BornToCode