Skip to content

whitered/aviasales_test

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Описание алгоритма.

Для быстрого поиска маршрутов перелета вводится дополнительная модель - маршрут. Маршрут может быть простой - один перелет, или составной - из двух маршрутов (каждый из которых, в свою очередь, тоже может быть простым или составным).
Для каждого добавленного авиарейса автоматически создается простой маршрут. Для каждого созданного маршрута выполняется поиск других маршрутов, с которыми он может быт состыкован. Поиск выполняется исходя из предположения, что время пересадки ограничено сверху (12 ч.) и, возможно, снизу (30 мин.), также ограничено максимальное количество пересадок (3). Здесь нужно в дальнейшем добавить дополнительные условия осмысленности маршрутов, например по направлению и т.п.
При удалении авиарейса из базы удаляется связанный простой маршрут, при удалении любого маршрута удаляются все сложные маршруты, в которые он входил.
Для избежания возможного дублирования составной маршрут должен быть сбалансированным, то есть количество пересадок в первой его части должно быть равно или больше на 1 количества пересадок во второй.
Для упрощения поиска в таблице маршрутов дублируются такие поля, как время вылета и прилета, пункты отправления и назначения, а также считается общее количество пересадок и суммарная стоимость.