> Но почему не начать с обычного adjacency list?
Это же та структура, где мы просто храним parentId? Придётся читать ноды каждый раз рекурсивной CTE? А у меня чтение это 99.99% всех операций
Может подскажет верное направление, структура для дерева:
ID (int) - первичный ключ
ParentId (int) - ид родителя
RootId (int) - ид корня
HasContents(bit) - наличие вложенных
Path (varchar(900)) - полный путь
—
При такой структуре всё действия по чтению выполняются достаточно быстро:
- если хотим СТЕ=> используем ID, ParentId
- все ветки от корня - RootId
- для нужных подуровней Path