Произвольные выборки из many-to-many

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Alert230
Сообщения: 56
Зарегистрирован: 2018.03.09, 13:34

Произвольные выборки из many-to-many

Сообщение Alert230 »

Добрый день!
Нужен совет по организации БД.

Есть таблицы:
- zerno_kultura (id, title)
- zerno_kontragent (id, title)
- zenro_price (id, kultura_id, kontragent_id, price)
- zerno_otchet (id, title)

Упущу очевидные вещи, что есть зависимости и ключи.

У меня на выходе должна получиться таблица-отчет: КОНТРАГЕНТ(горизонталь)/КУЛЬТУРА(вертикаль), на пересечении ЦЕНА (price). И у меня вопрос, как мне в отчет добавлять/удалять культуры и контрагентов? как мне эту настройку хранить в БД?
Пока что склоняюсь к решению: добавить в таблицу `zerno_otchet` поля kontragent_list и kultura_list, куда записывать массив значений в формате serialize
Прошу совета из разряда "лучших практик" как мне это организовать

Всем участникам топика - спасибо!
Аватара пользователя
Alexum
Сообщения: 683
Зарегистрирован: 2016.09.26, 10:00

Re: Произвольные выборки из many-to-many

Сообщение Alexum »

Можно добавить промежуточную таблицу, связывающую zerno_price и zerno_otchet. Через price отчёт получит связь до культуры или контрагента, но будут нюансы в сборе отчёта (в отчёт не добавить культуру, если нет цены ни для одного из контрагентов и наоборот). Либо добавить промежуточные таблицы связывающие zerno_otchet с zerno_kultura и zerno_otchet с zerno_kontragent, таким образом можно будет собрать отчёт с любым сочетанием культур/контрагентов.
PS. Я не сторонник вашей идеи с сериализованным массивом id-шников, т.к. поддерживать целостность БД будет весьма проблематично и нормальных связей не будет.
Alert230
Сообщения: 56
Зарегистрирован: 2018.03.09, 13:34

Re: Произвольные выборки из many-to-many

Сообщение Alert230 »

id-шники нужны для нормального конфигурирования нужных составных отчетов. Я делаю реализацию и вашего и моего варианта.
Спасибо за идею.
Ответить