Найдите исполнителя для вашего проекта прямо сейчас!
Разместите заказ на фриланс-бирже и предложения поступят уже через несколько минут.
#1$

Обновлено 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

15 лет назад
limenutt
Гость 
NaN летРоссия
17 лет в сервисе
Был
12 лет назад
Победитель конкурса
Nick_309
Николай 
42 годаУкраина
16 лет в сервисе
Был
4 года назад
15 лет назад
Николай отлично справился с заданием, несмотря на нечеткость требований. Фактически, часть требований была определена в процессе нашего с ним сотрудничества. Хочется также отметить его готовность корректировать код в соответствии с моими пожеланиями. Я очень доволен, в будущем при разработке в этой области он будет первым к кому я обращусь.
Адекватный заказчик, задача была изложена предельно ясно, работа оплачена в срок. Рекомендую всем сотрудничать.
Заявки фрилансеров
Nick_309
Николай 
42 годаУкраина
16 лет в сервисе
Был
4 года назад
15 лет назад
  • Похожие заказы
  • Добрый вечер всем. Интересует написание БД желательно быстро. Учет объектов недвижимости. Техническое задание отсутствует. Идеально House4 (АН Благовест, Киев, может кто сталкивался), но они перестали ее продавать. Коротко: в БД должно быть порядка 10 ...

    Базы данных1 исполнитель
    Закрыт
    15 лет назад
  • $30

    Нужно с сайта сгенерировать базу всех регионов/подрегионов .../городов/сел http://www.rightmove.co.uk/property-for-sale.html - тут справа есть London England Scotland Wales Northern Ireland Major towns & cities кликая на каждый этот регион получаем глубокое дерево под регионов к примеру - England -- East Midlands -- -- Derbyshire -- -- -- ...

    Базы данных7 заявок
    Закрыт
    15 лет назад
  • Необходимо написать простенькую базу данных+ админку для клубного проекта+ установить ее на сайт и настроить на сервере: Имя пол: М\Ж телефон: имейл: Укажите свой город: Москва, Киев, Одесса, и т.д. Дальше список городов. Если в Москве и Киеве должен выпадать список станций метро. ...

    Базы данных19 заявок
    Закрыт
    15 лет назад
  • $40

    К имеющейся базе данных создать формы и запросы оплата наличными при личной встрече.Питер аська если надо 432289929

    Базы данных6 заявок
    Закрыт
    15 лет назад
  • $40

    Нужна работа с базой данных. Необходимо по имеющейся базе составить формы и запросы оплата наличными при личной встрече .Питер

    Базы данных4 заявки
    Закрыт
    15 лет назад
  • $20

    Само задание http://www.thirteenth.info/EXCEL/ в прикрепленном файле, таблица с оформлением, если не сложно можно прям туда "оформит отношения" :)

    Базы данных6 заявок
    Закрыт
    15 лет назад
  • Здравствуйте, значит, задача следующая. Есть информация, готовая,есть информация, котораябудетдобавляться. Необходима бд, простая по своейфункции, интересная функционально. У кого есть исходники показывайте, если готовы сделать предлагайте цену. по срокам нужно быстро. В самой бд окно вывода информации (максимум до 3 окон) Много ...

    Базы данных27 заявок
    Закрыт
    15 лет назад
  • $20

    Здравствуйте. Существует сервис блогов на движке Bloghoster. Движок довольно простой. Собираюсь переехать на движок Wordpress MU (мультиюзерная версия). База небольшая, но терять жалко, потому хочется сохранить юзеров, их блоги и т.п. В общем что требуется: я предоставляю ...

    Базы данных2 заявки
    Закрыт
    15 лет назад
  • $50

    Использовал для сайтов систему SLAED CMS 2.6 (http://www.slaed.net/files-view-868.html) - система безнадежно устарела, перешел на последнюю версию.. SLAED CMS 4.2. почти все модули перенес. остался вопрос с одним модулем... таблицы в этих версиях довольно похожи. - за исключением ...

    Базы данных1 исполнитель
    Завершен
    15 лет назад
  • $100

    Срочно требуется специалист по Access 2003 для создания небольшой учебной программы к курсовому проекту. Все функции реализуются с помощью встроенных возможностей Access 2003. Структура базы данных уже есть (база маленькая, не сложная). Что должна уметь ...

    Базы данных11 заявок
    Закрыт
    15 лет назад