Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Andrey Chesnokov Гость
|
Добавлено: Чт Окт 17 2002 15:14 Заголовок сообщения: Древовидная структура в БД |
|
|
Требуется создать и Базе даных древовидную структуру,есть ли у кого какие либо соображения? Я виже это так: Одна таблица со следующими полями: id host id_prev где, id индексируемое поле, host - название узла, id_prev - значение индексного поля предка Что скажите? |
|
Вернуться к началу |
|
 |
Andy-C Гость
|
Добавлено: Чт Окт 17 2002 16:18 Заголовок сообщения: Re: Древовидная структура в БД |
|
|
определена арность дерева? на чём реализовывать, т.е. поддерживаются ли триггера, процедуры и т.п.? |
|
Вернуться к началу |
|
 |
Andrey Chesnokov Гость
|
Добавлено: Чт Окт 17 2002 16:36 Заголовок сообщения: Re: Древовидная структура в БД |
|
|
Мне надо хранить в БД древовидную структуру,и все. Как с ней работать я определю позже, и я не хочу сейчас заострять на этом внимание... В качестве платформы к примеру возьмем mySQl - но мне кажется что это не принципиально... Если я не прав - поясните в чем... |
|
Вернуться к началу |
|
 |
MMax Гость
|
Добавлено: Пт Окт 18 2002 13:48 Заголовок сообщения: Re: Древовидная структура в БД |
|
|
В одном из журналов КомпьютерПресс есть классная статья, посвещенная именно этому. К соожалению номер не помню. (где 2000-2001год) |
|
Вернуться к началу |
|
 |
yoshi Гость
|
Добавлено: Пн Окт 21 2002 08:43 Заголовок сообщения: Re: Древовидная структура в БД |
|
|
Немного всетаки не прав Нужно определиться с сревером БД, и что он позволяет тебе сделать. Я сейчас как раз пишу прогу под такую структуру, то если сервер не поддерживает триггеров и хр. процедур - будет трудно при организации выборки. Существует 2 способа: - сортировать данные при вставке - сортировать данные при выборке (Поверь - сортировка много значит, когда я писал прогу под неотсортированные данные, то (некоторые могут скептически улыбнуться) но процедура корректной обработки выбранных записей была на 3 экрана, и включала бесконечный цикл - это тоже плохо)
Так что подскажу наилутший способ: Та же структура, только к ней добавляется 2 поля -level - текущий уровень элемента в дереве -num - порядковый номер записи относительно предка Немного усложнится способ добавления данных в таблицу, но спасет от большого геморроя ______________ ну вот вродебы все остальные ответы по имейл
 |
|
Вернуться к началу |
|
 |
Andy-C Гость
|
Добавлено: Вт Окт 22 2002 08:07 Заголовок сообщения: Re: Древовидная структура в БД |
|
|
Если арность не большая - проще хранить ссылку на ветви в узле (id,name,id_left,id_right)-бинарное дерево. Иначе две таблицы: список вершин и список связей. В списке связей необходимо хранить "номер" связи (пример: для бинарного дерева - левая и правая ветвь). Без триггеров, видов и т.п. грабли поддерживать целостность, да и выбирать надо грамотно. Если нужны только навигационные процедуры, вообще можно юсеру не показывать что это таблицы. |
|
Вернуться к началу |
|
 |
Борис Гость
|
Добавлено: Ср Окт 23 2002 09:55 Заголовок сообщения: Re: Древовидная структура в БД |
|
|
Думаю, что 1) нужно проиндексировать id_prev 2) предложения yoshi 21-10-2002 09:43 насчет
-level - текущий уровень элемента в дереве -num - порядковый номер записи относительно предка
разумны, причем id_prev нужно проиндексировать в паре с num, то есть сделать двухсегментный индекс |
|
Вернуться к началу |
|
 |
|