Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Дерево объектов / 7 сообщений из 7, страница 1 из 1
22.01.2007, 12:08
    #34271671
Stpl
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дерево объектов
Знатоки, подскажите пожалуйста, а есть в каше поддержка дерева объектов одного класса?

Например parent-child можно описать примерно так:

Код: plaintext
1.
2.
3.
4.
5.
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 ];
}

Дальше хочется иметь навигацию по дереву Parent, в том числе PrevSibling, NextSibling, Ascendants, Descendants и т.д. Естественно вопрос не о том как реализовать на SQL работу с деревьями, а что есть в Cache' готового на эту тему ч.б. не изобретать велосипед идя по SQL пути
(до этого на sql я иcпользовал одну из моделей от Celko но на Cache хочется объектного подхода:) и желательно с максимальным использованием готовых возможностей Cache)
...
Рейтинг: 0 / 0
22.01.2007, 14:16
    #34272260
Ptn
Ptn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дерево объектов
Там где требовалось дерево - обходился одной ссылкой на уровень выше.
Иногда с доп счетчиком уровня дерева.

Скомпил ваш пример - глянул в структуру хранения ;) В принципе одно и тоже. надо же. Разве что целостность автоматом будет
...
Рейтинг: 0 / 0
22.01.2007, 14:28
    #34272322
Ptn
Ptn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дерево объектов
Ascendants и Descendant это я так понимаю предки вверх и потомки вниз ?

Для потомков вверх создатся поле (на первый случай вычислимое) со списков предков.По нему делает индекс.

Потомки вниз запрос по этому полю.

Для выбора соседей индекс по Паренту.

PS: естественно в лоб и IMXO.
...
Рейтинг: 0 / 0
22.01.2007, 14:34
    #34272347
Дерево объектов
Свойство Children будет представлено в памяти объектом класса %RelationshipObject, который похож на коллекцию.
...
Рейтинг: 0 / 0
22.01.2007, 14:36
    #34272353
Stpl
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дерево объектов
PtnAscendants и Descendant это я так понимаю предки вверх и потомки вниз ?
Да

>Для потомков вверх создатся поле (на первый случай вычислимое) со списков
>предков.По нему делает индекс.
>
>Потомки вниз запрос по этому полю.
>
>Для выбора соседей индекс по Паренту.
>PS: естественно в лоб и IMXO.
имхо это неполная реализация дерева через обычную таблицу а хочется максимум от самого каше
...
Рейтинг: 0 / 0
22.01.2007, 14:36
    #34272355
Stpl
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дерево объектов
Мыш ЛетучийСвойство Children будет представлено в памяти объектом класса %RelationshipObject, который похож на коллекцию.
о, надо посмотреть
...
Рейтинг: 0 / 0
22.01.2007, 14:58
    #34272447
Ptn
Ptn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дерево объектов
%RelationshipObject похож на массивы - по методам - но индекс, редиска возращает не соотвествующий ID чилдрена, а простое последовательное число 1,2,3,4...

Работа с релейшанами через объекты медленная. Нужно следить как и кого сохраняеш.

Боюсь что готовой реализации нужного вам функционала в Кашэ нема.

Но можно написать базовый класс с генераторами.
...
Рейтинг: 0 / 0
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Дерево объектов / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]