![]() |
Модераторы: LSD |
![]() ![]() ![]() |
|
Vyacheslav |
|
||||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: нет Всего: 59 |
Модератор RAN: тема получилась в результате разделения другой темы. Где обсуждались способы связи древовидного списка с реляционной БД на C++. На мой взгляд, это достойно внимания в разделе БД, в отдельной теме. А в C++ осталась ссылка в обсуждении
Один из возможных и эффектных варинтов создания древовидной структуры с помощью реляционный БД является использование механизма L и R Имеем дерево
Мысленно представим червя, который ползет по этому дереву, начиная с ClassA и обходит каждый элемент и при этом при прохождении с левой и правой стороны увеличивает некий счетчик
Теперь заполняем таблицу и заносим значения счетчика слева в L, а значения счетчика справа в R
Теперь любую информацию можно получить с плмощью запросов Какие классы я ялются производными от ClassC? Select * from Classes where L>7 and R<12 Какие классы не имееют производных, т. е являются листьями? Select * from Classes where L=R-1 Вывести все классы, являющиеся предками класса Class G? Select * from Classes where L< 9 and R>10 и т.д. Преимущества такой схемы: простота получения любой информации с помощью простейших запросов, создание иерархичий любого уровня вложенности. Недостатки : сложности при вставке, удалении элементов -------------------- С уважением, Вячеслав Ермолаев |
||||||
|
|||||||
![]() ![]() ![]() |
Правила форума "Общие вопросы по базам данных" | |
|
Данный форум предназначен для обсуждения вопросов о базах данных не попадающих под тематику других форумов:
Данный форум не предназначен для:
Если вы не соблюдаете эти правила, не удивляйтесь потом не найдя свою тему/сообщение.
Полезные советы: Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, LSD, Zloxa. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | СУБД, общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |