В этом варианте вы используете прямое иерархическое представление (т. Е. Родительскую ссылку в узле), но также сохраняете значение пути.
т. для дерева каталогов, состоящего из следующего:
C:\
Temp
Windows
System32
У вас будут следующие узлы
Key Name Parent Path
1 C: *1*
2 Temp 1 *1*2*
3 Windows 1 *1*3*
4 System32 3 *1*3*4*
Путь индексируется и позволит вам быстро выполнить запрос, который подхватывает узел и все его дочерние элементы, не манипулируя диапазонами.
т. найти C: \ Temp и все его дочерние элементы:
WHERE Path LIKE '*1*2*%'
Это представление - единственное место, где я могу думать о том, где можно хранить id в такой строке, как это нормально.