| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Базы данных > Создание дерева по базе данных |
| Автор: HyugaNeji 6.10.2008, 14:55 | ||
| Привет. Проблема вот в чем: Есть база данных, в ней таблица, в ней два поля - ID , PARENT_ID. По этим полям должно строиться дерево - ветвь ID должно присоеденяться к PARENT_ID Я написал код:
Сортировка по полю ID. Дерево строится нормально, пока не доходит до того места где ID меньше чем PARENT_ID, и выдаёт ошибку , так как неможет найти эту ветвь, т.е. она ещё не создана. Попробывал сортировку по полю PARENT_ID - такая же ерунда... Можно ли обойти эту проблему? Например перенсти запись в которой ID меньше чем PARENT_ID в конец таблицы, и обработать её потом. Или вообще какой-нибудь другой код? Надеюсь объяснил понятно. |
| Автор: andov 6.10.2008, 15:10 |
| Где гарантия что записи в базе по ID будет идти вподряд. Как ты можешь ссылаться в дереве по индексу Item["ParentID"] Я бы, для создания дерева, рекомендовал рекурсию. Дешаешь функцию, которая выполняет запрос к базе и создает всех детей для ParentID При этом Вызывает саму же себя со своим ID, создав тем самым своих детей, если они есть. |
| Автор: HyugaNeji 6.10.2008, 15:26 |
| Спасибо большое за идею, попробую реализовать, надеюсь опыта и мозгов хватит ) |