|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Delphi - построения графа по базе данных |
|
Delphi - построения графа по базе данных
|
Новый участник Сообщения: 4 |
Профиль | Отправить PM | Цитировать Привет всем! Помогите!) У меня тякая проблема: поставили задачу построения графа по базе данных на SQL. Понимаю, что звучит непонятно, как смогу попытаюсь объяснить) Пусть у нас есть таблица состоящая всего из двух полей: Кто продал и Кому продал. Далее пользователь, например, вводит Иванов и указывает вложенность графа - 3. Мы должны сделать запрос на поиск записей со значением поля Кто продал = Иванов. Пусть их нашлось 2 со значением поля Кому продал - Петров и Сидоров . Далее ищем записи для Петрова и Сидорова(они тоже кому-то что-то продают) и т.д. до той вложенности которую указал пользователь. И необходимо это вывести графически. Думаю более или менее понятно. Может у кого есть какие идеи как это реализовать или может это уже гдето реализовано, подскажите плиииз, очень нужно)
|
|
Отправлено: 14:25, 13-10-2010 |
Старожил Сообщения: 198
|
Профиль | Отправить PM | Цитировать Самое банальное что пришло на ум:
procedure a (глубина, кто_продал_имя, кто_продал_указ); кто_продал_указ - указание на вершину графа(ссылка, номер вершины и.т.п) begin if глубина = треб_глубина then exit; q = "SELECT кому_продал FROM table WHERE Кто_продал = кто_продал_имя; ar = выполнить(q) и получить массив; связать вершину кто_продал с вершинами кому_продал (при необходимости добавить вершины кому_продал в граф); for i:=1 to размер(ar) do a(глубина+1; ar[i]; указание на вершину графа с именем ar[i]) end; |
Отправлено: 19:41, 13-10-2010 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 4
|
Профиль | Отправить PM | Цитировать Блин, спасибо конечно, но можно поподробней, я не профи и что-то не могу в этом разобраться)
ar - что за массив. Да и вообще если это все будет корректно работать, то остается вопрос как рисовать этот граф?) |
Отправлено: 13:16, 14-10-2010 | #3 |
Старожил Сообщения: 198
|
Профиль | Отправить PM | Цитировать a - рекурсивная процедура
ar - таблица, который получается после обработки и после выполнение sql-запроса, так как запрашиванется один столбец, то это будет по сути массив, его надо преобразовать в массив, он будет содержать данные о том кому_продал, тот кто_продал. Затем необходимо связать вершину кто_продал с вершинами кому_продал (реализация зависит от представления графа) Далее для каждого элемента массива рассматриваем кому_продал в качестве кто_продал , т.е вызываем а рекурсивно. В первый раз вызываем процедуру как а(0, кто_продал, указатель на первую вершину графа) По графике я и сам не специалист, но построив граф, думаю нарисовать его не проблема. Надеюсь, так яснее. |
Отправлено: 18:14, 14-10-2010 | #4 |
Новый участник Сообщения: 4
|
Профиль | Отправить PM | Цитировать Спасибо буду разбираться, если будут еще вопросы отпишусь, ОК?)
|
|
Отправлено: 13:21, 15-10-2010 | #5 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Разное - Отличие методов доступа к базе данных MySQL | von JoSy | Программирование и базы данных | 0 | 07-07-2010 12:46 | |
не удается подключиться к базе данных сервера WSUS | Rkiller | WSUS | 10 | 09-02-2009 17:08 | |
MySQL - [решено] сохранение данных в базе данных Mysql | TigerZaka | Программирование и базы данных | 4 | 24-08-2008 15:48 | |
Представление файловой системы в базе данных | Amina | Программирование и базы данных | 1 | 29-03-2004 14:50 | |
Дробление табличек в базе данных | x404 | Программирование и базы данных | 2 | 23-10-2003 02:21 |
|