Mysql. Правильная выборка из кучи таблиц многие-ко многих

Есть главная таблица main c полями id, name, ...

и есть штук 10 таблиц-свойств многие-ко-многим:

video + main_video  (ссылки на видео)
screens + main_screens (скриншоты)
scans + main_scans (сканы)
company + main_company (фирмы)
...

Суть: Как правильно выбрать все данные по нескольким id из main с нимимальными затратами?

  1. Сейчас так: приходит запрос нужными id: 12, 34, 45 делается один запрос к main и другим одиночным таблица, затем по одному запросу к каждой таблице связи: main_video, main_screens, main_scans, main_company, ... постепенно добавляя в результирующий массив пришедшие данные.

По итогу, за 11 запросов выбрали все данные без дублирования.

  1. Есть ещё вариант за один (или два: к основной и к множественным) запрос всё связать и вытянуть, но мы получаем кучу строк с повторяющимися данными, отличающимися одним столбцом (свойством).

При таком подходе при 10 скриншотах, 2 видео, 5 сканах, 3 фирмах больше сотни от которых нужно только по одному столбцу.


Ответы (0 шт):