Как правильно получить данные из таблиц базы данных mysql?

Есть 4 таблицы: квесты, карты, действия, точки Идет привязка вида: id квеста -> множество карт -> у каждой карты множество действий -> у каждого действия множество точек.

Как сформировать данные из бд, для дальнейшей работы на бек. На выходе я хочу получить массив вида: массив квестов, в каждом квесте массив карт, у каждой карты массив действий и у каждого действия массив точек, чтобы пройти на шаблонизаторе и спокойно взять все данные.

Интересует следующее: делают ли это одним запросом или несколькими? Если несколькими, то получается нужно в контроллере будет проходить по массиву с квестами и внутри для каждого элемента делать вложенный цикл для добавления к каждому элементу квеста, карт и тд по всей цепочке массивов !? Вот что то мне этот метод не особо нравится.

А если делать одним запросом, то тут загвоздка в том что квест 1, карт много, у каждой карты много действий, а у действия точек. Получаем выборку к примеру по left join, с кучей null, и дубликатами названий квеста и тд, непонятно как проходить циклом. + если делать одним запросом из нескольких таблиц, то ломается суть mvc, так как непонятно в какую модельку такой монструозный запрос положить. Помогите пожалуйста!

Таблица с квестами

Таблица с картами

Таблица с экшенами

Таблица с точками по каждому экшену


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