Заказанные товары - это маршруты поездок, которые имеют атрибуты origin_city_id
, destination_city_id
, departure_date
.
Есть еще одна таблица pax
, которая имеет такие атрибуты, как adult
, children
.
Пара маршрутов - это путешествие.Поэтому должно быть отношение «многие ко многим», связывающее людей с маршрутами.В некоторых случаях это может выглядеть так:
Trip_1 = ['pax' => Pax_1, 'itineraries' => [Itinerary_1, Itinerary_2]]
Trip_2 = ['pax' => Pax_1, 'маршруты '=> [маршрут_1, маршрут_2, маршрут_3]]
Trip_3 = [' pax '=> Pax_2,' маршруты '=> [Маршрут_1, маршрут_2]]
Если запрос ['pax' => Pax_1, 'itineraries' => [Itinerary_1, Itinerary_2]], должна быть возвращена только Trip_1.
Сначала я использую отношение «многие ко многим» для связи таблиц trips
с itineraries
, но позже было трудно построить отношения, так как у меня будет много записей для поездки.Кроме того, поиск может быть трудным для реализации, так как мне нужно найти набор маршрутов, который включает в себя только Itinerary_1 и Itinerary_2.
То, что я пытался сейчас, - это преобразовать таблицу itineraries
в таблицу собственных ссылок с внешним ключом.next_itinerary_id
для указания следующего маршрута и столбец first
для указания того, является ли маршрут первым маршрутом.После этого построения отношения «многие ко многим» становится намного проще, и мне нужно связать pax_id
с first_itinerary_id
.
Но при выяснении набора маршрутов запроса мне нужно запросить каждый маршрут, который я не уверен, правильно ли я делаю.
Это какой-то шаг, который я сделалнеправильно?Есть ли лучшая реализация?Или есть какие-то ссылки, которые я могу изучать?
Заранее спасибо.