Apache.RU - Webboard
Вернуться
Многоуровневый каталог (Виктор) 13/07 - 14:59:36
Re: Многоуровневый каталог (Alec) 13/07 - 15:27:58
Re: Многоуровневый каталог (Валентин) 13/07 - 16:44:16
Re: Многоуровневый каталог (Андрей) 14/07 - 11:52:08
Re: Несколько способов (Sam<un_sem@hotmail>) 14/07 - 14:38:26
Re: Несколько способов (Валентин) 14/07 - 16:09:48
Re: Несколько способов (Виктор) 14/07 - 16:47:28
Re: Несколько способов (Aleksandr Ognev) 16/08 - 13:55:33
Re: Несколько способов (Владимир) 23/03 - 11:06:07
> Original message text:
> From:
> Виктор - 13/07 - 14:59:36
> Subject:Многоуровневый каталог
> -----------------
> Джентельмены!
>
> простая задача - нужно хранить в БД каталог, потенциально большого размера (более десятка тысяч записей, чем и обуслевлено требование хранения в бд) произвольного уровня вложенности с быстрым доступом к произвольным данным.
>
> Я взял за основу ссылку на родителя элемента и пытаюсь строить часть дерева.
>
> структура таблицы:
> ID
> parentID
> hasChilds
>
> nodeName
> value
>
> последние два определяют данные элемента каталога, а дерево получается за счет связки ID-parentID. hasChilds стопер, обновляется при добавлени и удалении елементов для parentID.
>
> Как я строю меню по этому дереву
> 1) нахожу текущий элемент, например, по значению (один запрос)
> 2) строю цепочку его родителей к корню (по parentID), чтобы активировать всю ветвь (отдельный запрос на каждый елемент :( )
> 3)затем нахожу всех соседей, т.е детей parentID (еще один запрос).
>
> есть ли более быстрая схема? Можно ли и стоит ли упаковывать шаг 2 в один запрос (и собственно как :) )?
>
From: Валентин - 14/07 - 16:09:48
Subject:Несколько способов
-----------------
По деревьям есть несколько реализаций.
1)Держать дерево в 1-й таблице - наиболее простой для редактирования и хранения способ. Неудобно извлечение всего дерева для отчета. Пролема решается рекурсивными stored proc.
2)Хранить в 2-х таблицах. Усложнении в редактировании и хранении. Вытянуть для отчета весь справочник тоже непросто.
3) Хранить в многих таблицах с динамическим созданием. Сложное редактирование и хранение. Сложный но реальный запрос извлечения.
[Это сообщение - спам!]
Последние сообщения из форума
16825
|
|