Добрый вечер всем. Интересует написание БД желательно быстро. Учет объектов недвижимости. Техническое задание отсутствует. Идеально House4 (АН Благовест, Киев, может кто сталкивался), но они перестали ее продавать. Коротко: в БД должно быть порядка 10 ...
SQL - процедура нахождения путей в графе
Разместите заказ на фриланс-бирже и предложения поступят уже через несколько минут.
Обновлено 13.09.09:
Есть таблица, определяющая взвешенный ориентированный граф, описана так
create table Connection (
con_id bigint not null,
con_type tinyint not null default 1, --тип соединения,
--возможные значения: 1,2,4,8 bin: 0001,0010,0100,1000
con_from bigint not null,--конечная вершина
con_to bigint not null,--начальная вершина
con_cost decimal not null,--стоимость соединения (вес)
con_time datetime not null, --время прохождения соединения (второй вариант веса)
constraint PK_CONNECTION primary key (con_id)
)
требуется написать процедуру, которая по заданным параметрам возвращает все возможные пути, соответствующие заданным параметрам.
Процедура:
create procedure dbo.sp_get_paths
@dst_from_id bigint,--начальная точка пути
@dst_via_ids nvarchar(2048) null, --строка, содержащая id пунктов, через которые должен пройти путь через запятую, в том порядке, как они указаны, т.о. путь должен начинаться с dst_from_id, проходить через некоторые пункты, в том числе через dst_via_ids в указанном порядке
@dst_to_id bigint,--конечная точка маршрута
@allowed_type int,--разрешенные типы соединений, которые можно использовать (маска)
@weight_is_cost bit, --если TRUE то в качестве веса соединения используется поле cost, в противном случае time
@max_path_length tinyint, --максимальное количество пунктов в пути
@max_path_count tinyint, --максимальное количество путей в результате
@max_path_cost decimal null,--максимальная суммарная стоимость пути (если задано)
@max_path_time datetime null, --максимальное суммарное время пути (если задано)
as
declare
begin
?
end
Возращает процедура таблицу с найденными путями, отсортированную по возрастанию суммарной стоимости(или суммарного времени),
в столбцах таблицы - пути, в рядах описание путя: - id соединений (con_id), предпоследние 3 ряда содержат суммарный вес пути: 2 ряда на суммарную стоимость (в первом ряду целая часть, во втором дробная), и последний ряд содержит общее время на путь, в минутах.
Все значения - bigint
пример:
path1 | path2 | path3
12 | 11 | 1
35 | 3 | 89
14 |18 | null
15 | null | null
34 |45 | 87 - стоимости 34.5,45.3,87.2
50 |30 | 20
85 |1405 |741 - длительности 01:25:00,23:25:00,12:21:00
максимально в таблице может быть @max_path_count столбцов и @max_path_length+3 рядов.
Если ничего не найдено возвращается таблица
path1
0
Если произошла ошибка, то нужно кидать пользовательское исключение с описанием и кодом ошибки.
Целевая БД - MSSQL 2005
Процедура должна быть максимально оптимизирована.
Допускается изменение описания таблицы с графами и входных параметров процедуры для оптимизации, но только при условии согласования со мной.
Предполагается, что базе будет(максимально) порядка 10^9 записей (в таблице Connection)
и где-то 10^4 в таблице Destination
Победитель конкурса
Похожие заказы
- Базы данных1 исполнительЗакрыт16 лет назад
- $30
Нужно с сайта сгенерировать базу всех регионов/подрегионов .../городов/сел http://www.rightmove.co.uk/property-for-sale.html - тут справа есть London England Scotland Wales Northern Ireland Major towns & cities кликая ...
Базы данных7 заявокЗакрыт16 лет назад Необходимо написать простенькую базу данных+ админку для клубного проекта+ установить ее на сайт и настроить на сервере: Имя пол: М\Ж телефон: имейл: Укажите свой город: ...
Базы данных19 заявокЗакрыт16 лет назад- $40
К имеющейся базе данных создать формы и запросы оплата наличными при личной встрече.Питер аська если надо 432289929
Базы данных6 заявокЗакрыт16 лет назад - $40
Нужна работа с базой данных. Необходимо по имеющейся базе составить формы и запросы оплата наличными при личной встрече .Питер
Базы данных4 заявкиЗакрыт16 лет назад - $20
Само задание http://www.thirteenth.info/EXCEL/ в прикрепленном файле, таблица с оформлением, если не сложно можно прям туда "оформит отношения" :)
Базы данных6 заявокЗакрыт16 лет назад Здравствуйте, значит, задача следующая. Есть информация, готовая,есть информация, котораябудетдобавляться. Необходима бд, простая по своейфункции, интересная функционально. У кого есть исходники показывайте, если готовы сделать предлагайте цену. по срокам нужно быстро. ...
Базы данных27 заявокЗакрыт16 лет назад- $20
Здравствуйте. Существует сервис блогов на движке Bloghoster. Движок довольно простой. Собираюсь переехать на движок Wordpress MU (мультиюзерная версия). База небольшая, но терять жалко, потому хочется сохранить юзеров, их блоги и т.п. ...
Базы данных2 заявкиЗакрыт16 лет назад - $50
Использовал для сайтов систему SLAED CMS 2.6 (http://www.slaed.net/files-view-868.html) - система безнадежно устарела, перешел на последнюю версию.. SLAED CMS 4.2. почти все модули перенес. остался вопрос с одним модулем... таблицы в этих версиях довольно похожи. ...
Базы данных1 исполнительЗавершен16 лет назад - $100
Срочно требуется специалист по Access 2003 для создания небольшой учебной программы к курсовому проекту. Все функции реализуются с помощью встроенных возможностей Access 2003. Структура базы данных уже есть (база маленькая, не ...
Базы данных11 заявокЗакрыт16 лет назад