![]() |
построения графа по базе данных
Привет всем! Помогите!) У меня тякая проблема: поставили задачу построения графа по базе данных на SQL. Понимаю, что звучит непонятно, как смогу попытаюсь объяснить) Пусть у нас есть таблица состоящая всего из двух полей: Кто продал и Кому продал. Далее пользователь, например, вводит Иванов и указывает вложенность графа - 3. Мы должны сделать запрос на поиск записей со значением поля Кто продал = Иванов. Пусть их нашлось 2 со значением поля Кому продал - Петров и Сидоров . Далее ищем записи для Петрова и Сидорова(они тоже кому-то что-то продают) и т.д. до той вложенности которую указал пользователь. И необходимо это вывести графически. Думаю более или менее понятно. Может у кого есть какие идеи как это реализовать или может это уже гдето реализовано, подскажите плиииз, очень нужно)
|
Самое банальное что пришло на ум:
Код:
procedure a (глубина, кто_продал_имя, кто_продал_указ); |
Блин, спасибо конечно, но можно поподробней, я не профи и что-то не могу в этом разобраться)
ar - что за массив. Да и вообще если это все будет корректно работать, то остается вопрос как рисовать этот граф?) |
a - рекурсивная процедура
ar - таблица, который получается после обработки и после выполнение sql-запроса, так как запрашиванется один столбец, то это будет по сути массив, его надо преобразовать в массив, он будет содержать данные о том кому_продал, тот кто_продал. Затем необходимо связать вершину кто_продал с вершинами кому_продал (реализация зависит от представления графа) Далее для каждого элемента массива рассматриваем кому_продал в качестве кто_продал , т.е вызываем а рекурсивно. В первый раз вызываем процедуру как а(0, кто_продал, указатель на первую вершину графа) По графике я и сам не специалист, но построив граф, думаю нарисовать его не проблема. Надеюсь, так яснее. |
Спасибо буду разбираться, если будут еще вопросы отпишусь, ОК?)
|
Время: 11:16. |
Время: 11:16.
© OSzone.net 2001-