Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Реализация доступа к дереву при помощи SQL.
|
|||
|---|---|---|---|
|
#18+
Возникла такая задачка. Есть в БД класс, содержащий relationship на себя самого для описания дерева. Например, такой: Class My.Tree Extends (%Persistent) { Property Name As %String; Relationship Children As My.Tree [ Cardinality = many, Inverse = Parent ]; Relationship Parent As My.Tree [ Cardinality = one, Inverse = Children ]; } При доступе через SQL он выглядит как таблица с тремя полями: ID, Name, Parent. Как получить всех потомков выбранного объекта (выбранной записи в таблице) при доступе через SQL одним запросом? В DB2 можно нарисовать рекурсивный запрос. Но Cache' не поддерживает WITH. Виктор ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.02.2008, 19:11 |
|
||
|
Реализация доступа к дереву при помощи SQL.
|
|||
|---|---|---|---|
|
#18+
Правильно я понимаю, что нужны все потомки, независимо от их уровня вложенности? Такой функционал можно получить, оформив алгоритм в виде хранимой процедуры (запрос - член класса, написанный на COS). Заодно работать будет шустро. Если версия Cache 2007.1, и сильно не хочется писать custom query, основанный на COS, то можно добавить в таблицу вычислимое поле Path, которое в конкатерированной форме хранит "путь" к записи (ID родителей с разделителями), и сделать по этому вычислимому полю индекс (для этого и нужна 2007.1), чтобы при каждом обращении эти поля не пересчитывались. Тогда поиск всех возможных детей вне зависимости от уровня вложенности будет сводится к условию вхождения в значение нашего вычислимого поля идентификатора родителя (включая 1 символ разделителя, чтобы ошибок вложенности, когда один ID может целиком (посимвольно) входить в другой ID, избежать). --------- http://writeimagejournal.com - InterSystems Russia Technology Blog. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.02.2008, 21:42 |
|
||
|
Реализация доступа к дереву при помощи SQL.
|
|||
|---|---|---|---|
|
#18+
Т.е. без изменения класса никак? Собственно вопрос и был в том, чтобы БД не править. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.02.2008, 22:15 |
|
||
|
Реализация доступа к дереву при помощи SQL.
|
|||
|---|---|---|---|
|
#18+
А в чем сложность? Тут же аддитивное изменение - конфликтов быть не должно. --------- http://writeimagejournal.com - InterSystems Russia Technology Blog. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2008, 12:03 |
|
||
|
|

start [/forum/topic.php?fid=39&fpage=72&tid=1558965]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
40ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
30ms |
get tp. blocked users: |
1ms |
| others: | 218ms |
| total: | 328ms |

| 0 / 0 |
