Xpoint
   [напомнить пароль]

Nested Sets и множество родителей

Метки: [без меток]
2006-01-20 00:18:30 [обр] Алексей Шоков(0/9)[досье]
Можно ли реализовать как-то изменить алгоритм вложенных множеств, чтобы у элемента могло быть несколько родителей? Или, если это полный абсурд, подскажите другой алгоритм для хранения такого дерева.
спустя 4 часа 26 минут [обр] Закиров Руслан(12/343)[досье]

Не уверен, но мне кажется, что также как и в других схемах — вынесеним связей в отдельную таблицу, то есть было:

id, left, right, node_info

стало:

id, node_info
id, left, right
спустя 7 часов [обр] Алексей Шоков(0/9)[досье]

Закиров Руслан[досье], у меня так и сделано изначально, т.е. информация хранится отдельно от дерева. Вопрос в другом: в самом алгоритме Nested Sets у элемента может быть только один родитель. А мне нужно, чтобы родителей могло быть несколько.

В сети мне попалось только одно решение: делать ссылки. Т.е. ввести ещё одно поле real_id, у реального элемента оно было бы NULL, а у ссылки оно принимало бы значение того элемента, на который она ссылается. Но... не будет ли такая структура подтормаживать? Да и просто я пока не понял, каким запросом можно, например, выбрать всех родителей изла?

спустя 1 час 16 минут [обр] Закиров Руслан(12/343)[досье]

Так во второй таблице id не первичный ключ, а просто поле. В этой таблице можно сделать PK составным либо отдельным полем, но оно будет дублирующим:

id, node_info
node, left, right

или

id, node_info
id, node, left, right

Так понятней?

спустя 3 часа 46 минут [обр] Алексей Шоков(0/9)[досье]
Закиров Руслан[досье], теперь я понял, огромное вам спасибо за объяснение.
Powered by POEM™ Engine Copyright © 2002-2005