интересная штуко
Sergey M. 23.12.2005 13:13
довольно сложная, еще до конца не разобрался как оно должно работать. Большинство непоняток кстати возникает именно изза дубликатов* в дереве. Например, я хотел бы вытащить ветку дерева (ancestor-or-self) от корня, зная идентификатор обьекта. Пытаюсь вытащить первую ветку до арбузов тем способом который первым приходит в голову, по арбузному идентификатору, и в результсете имею лишний объект "сочные" из другой ветки.
Как вытащить чтобы его небыло, пока непонятно.
Или вот еще - арбузы висят на дереве в двух местах, а их отношение к корню в таблице прописано только один раз. Означает ли это что все арбузы могут висеть только на определенном уровне? Скорее всего нет, просто сейчас они висят на одинаковом уровне, а одинаковые отношения добавлять в базу не имеет смысла. Но если мы перевесим арбузы в одной из веток поближе к корню - придется добавлять еще одну запись. А если мы вместо этого уберем арбузы с одной ветки вообще, мы не сможем просто удалить из таблицы их отношение с корнем, ибо оно получилось общее для всех арбузов, и этот момент всегда надо проверять, чтобы случайно не поудалять лишнего.
Если не создавать дубликаты объектов в дереве, все получается на порядок легче и элегантнее.
* Дубликаты в смысле несколько представлений объектов в дереве.