Re: Иерархия объектов : cтруктура БД ?
От: _MarlboroMan_ Россия  
Дата: 03.04.03 20:14
Оценка: 26 (2)
Здравствуйте, Poisson, Вы писали:

[skip]

для начала я бы построил такое дерево:
id | parent_id | object_id | type_id |

где id <-> parent_id — задают собственно иерархию, object_id — ссылка на объект (на запись в соответствующей таблице), type_id — ссылка на тип (например таблицу типов или константа) объекта.

связка object_id — type_id является уникальной в пределах иерархии и однозначно задает объект.

вот теперь объекты уже можно хранить в разных таблицах.

при попытке прицепить нечто как "ребенка" к данному "папе" — проверяем тип папы и делаем выводы о допустимости такого прицепления. ну и т.д.

полезность:
для облегчения жисти (и избавления от рекурсии при разборе дерева) можешь еще построить транзитивное замыкание (ТЗ) этого дерева.

ТЗ усложнит вставку и копирование веток, но облегчит тебе жисть при удалении поддеревьев, а так же при навигации по дереву и определении всяких полезностей: типа всех потомков данного элемента, ветвистости дерева, входимости данного элемента в заданное поддерево и т.д.
... << RSDN@Home 1.0 beta 6a >>

— сколько программистов надо чтобы заменить сгоревшую лампочку?
— сколько не бери, а лампочку не поменять — проблема аппаратная, программным путем не решается...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.