Как разработать схему отношения «многие ко многим», в которой одна из таблиц предназначена для хранения упорядоченных товаров? - PullRequest
0 голосов
/ 16 февраля 2019

Заказанные товары - это маршруты поездок, которые имеют атрибуты 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.

Но при выяснении набора маршрутов запроса мне нужно запросить каждый маршрут, который я не уверен, правильно ли я делаю.

Это какой-то шаг, который я сделалнеправильно?Есть ли лучшая реализация?Или есть какие-то ссылки, которые я могу изучать?

Заранее спасибо.

1 Ответ

0 голосов
/ 16 февраля 2019

Было бы полезно увидеть, что вы попробовали.Если бы вы опубликовали свои модели и отношения, это было бы легче увидеть.Вы должны ссылаться на отношения Laravel "многие ко многим" для справки, если у вас возникли проблемы

Затем вы можете загрузить таблицу itineraries на каждом из ваших человек.Это дает вам доступ ко всем маршрутам для каждого пассажира и позволяет выполнять поиск по вашему запросу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...