#laravel-5 #relationship
#laravel-5 #отношения
Вопрос:
Мне нужна помощь с отношениями в Laravel 5.3.
У меня есть 3 таблицы: группы (group_id, group_name) предприятия (business_id, business_name) платежи (payment_id, дата)
В группе может быть много предприятий, в созданной мной модели belongsToBusiness
Бизнес может принадлежать многим группам, в созданной мной модели belongsToGroup
Я создал сводную таблицу: business_group (business_id, group_id)
Платеж принадлежит одной группе и одному бизнесу.
Когда пользователь просматривает группу, мне нужно отобразить платежи для группы с названием компании для каждого платежа.
Когда пользователь просматривает бизнес, мне нужно отобразить платежи для бизнеса с именем группы.
В этот момент я был ошеломлен и сбит с толку.
Какие отношения я использую для платежей?
Это один из них? Имеет много сквозных, полиморфных отношений, многие ко многим полиморфным отношениям
Если да, то какой из них?
Кто-то предложил мне добавить поле id в сводную таблицу business_group, а затем поле business_group_id в таблицу платежей. Как мне настроить отношения в моделях, если я это сделаю?
И как мне получить данные для отображения платежей?
Может кто-нибудь, пожалуйста, помочь?
Комментарии:
1. Если ваш платеж имеет одну группу и один бизнес, вам следует обновить таблицу платежей следующим образом — payment_id, business_id, group_id, дата. Тогда в вашей платежной модели он должен принадлежать (бизнесу) и принадлежать (группе). В вашей бизнес-модели должно быть много (платежей), чтобы получать все платежи этого бизнеса.
2. Спасибо, я так и подумал, но мне было предложено добавить идентификатор в сводную таблицу, чтобы избежать дублирования данных. Но я думаю, я пойду так, как вы предложили.