Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 hierarchyid колонка path из коробки?  [new]
СтарыйШломо
Guest
правильно понял, что это всего лишь обертка для path (путь от корня к узлу)?
для поиска делаем computed column path as hid.ToString() по нему индекс и ищем like'ом как like '/wedwe/wedwe%'?
15 янв 14, 13:45    [15418438]     Ответить | Цитировать Сообщить модератору
 Re: hierarchyid колонка path из коробки?  [new]
СтарыйШломо
Guest
для выделения поддеревьев, например.
15 янв 14, 13:47    [15418454]     Ответить | Цитировать Сообщить модератору
 Re: hierarchyid колонка path из коробки?  [new]
Ken@t
Member

Откуда: 大地
Сообщений: 3264
СтарыйШломо,

А это для кого написано ?
15 янв 14, 14:13    [15418617]     Ответить | Цитировать Сообщить модератору
 Re: hierarchyid колонка path из коробки?  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6723
СтарыйШломо
правильно понял, что это всего лишь обертка для path (путь от корня к узлу)?
для поиска делаем computed column path as hid.ToString() по нему индекс и ищем like'ом как like '/wedwe/wedwe%'?
Нет, не правильно.

HierarchyID и есть путь. Но лучше - он обладает свойствами обоих подходов (путь + обходное дерево на диапазонах; простите что я не помню канонические их названия).
А строковое представление не работает. Вообще.

/19/
/2/
/20/

Прямо по полю HierarchyID и вешается индекс - для поиска в глубину или спереди добавляется HID.Level, т.е. составной - для поиска в ширину.
Все виды запросов делается обращением к этому полю (+ Level - но это редкость).

И притом что можно записать в него очень длинные пути и дофига элементов - оно очень компактное и занимает минимально возможное место. И в нём конечно же заложен порядок элементов.

Но соответственно у него такой же недостаток что и у базовых подходов - менять надо все подузлы при изменении, и вставляются/изменяются данные геморно. Лучше это делать полностью на клиенте, IMXO.
16 янв 14, 02:26    [15422365]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить