@Pepelas

Как сделать связь пяти таблиц с повторяющимися элементами через промежуточную таблицу Yii2?

Здравствуйте, подскажите пожалуйста как решить данную проблему.
Есть 5 таблиц в базе данных, связанные через промежуточную.

5bf561893d497400840221.png

По иерархии связи следующие:
auto->auto_model (one-to-many)
auto_model->auto_group (one-to-many)
auto_group ->auto_description (one-to-many)
auto_description-> auto_action (one-to-one)
auto_description-> auto_coast (one-to-one)

При внесении всех записей в одну таблицу получается порядка 60000 строк.
Дабы не плодить однотипных записей, в таблицах auto_group, auto_description и auto_action записи пепеиспользуются. То есть – у вех моделей будет группа «элементы подвески» а у каждой такой группы будет описание «тяга рулевой рейки» у которой action «замена». Вследствие этого, я не могу напрямую связать таблицы. Мало того, связь рвётся при выборке auto_group ->auto_description, т.к. из таблицы auto_bind выбираются все вхождения этой группы, которые, могут не соответствовать, к примеру - auto_model->id = 3.

Остуда вопрос: как мне сделать связь моделей YII с минимальными затратами ресурсов системы?
Если никак - то подскажите, как правильно организовать базу данных?
  • Вопрос задан
  • 101 просмотр
Решения вопроса 1
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
Дабы не плодить однотипных записей, в таблицах auto_group, auto_description и auto_action записи пепеиспользуются.

А что кроме размера базы Вы выиграете? Запросы усложняться и замедляться. Мне кажется это очень странная затея.
Вообще как только появляется one-to-one - скорее всего это костыль-костыль

получается порядка 60000 строк

смешная цифра. Я понимаю когда речь о 60 000 000 строк, тогда можно искать где бы что сэкономить, и то там методы иные будут. А в Вашем случае надо делать проще и очевиднее, а именно все что one-to-one пихать в одну таблицу.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Pepelas Автор вопроса
Главная затея в том, чтобы при внесении нового в каталог можно было использовать уже имеющееся, если подходит.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы