Допустим у меня есть таблицы для компонентов:
- simple_text_component
- simple_image_component
- media_gallery_component
у каждой есть свои поля и свои записи.
Мне нужно создать еще одну таблицу
components, в которой я буду хранить ссылки на записи из трех таблиц выше
(их может быть и не три, а более в рамках роста проекта).
Идея в том, что я хочу в дальнейшем в одном запросе
(или как можно оптимальнее) доставать по несколько компонентов из
components. Как можно это сделать? Либо как спроектировать структуру таблиц удовлетворяющей решению такой задачи?
Пока в голову приходит что-то такое:
хранить в таблице components id, тип компонента (строка, соответствует имени таблицы), далее делать запрос который извлечет все необходимые строки из components, потом на основе этих данных формировать запрос чтоб забрать все необходимые данные по каждому из компонентов, потом это маппить в необходимый формат и отдавай в контроллер. Выходит что будет два запроса.
Но такой вариант мне не очень нравится, предложите свое решение.