Всем привет 👋
Ребят, хочу посоветоваться насчёт EAV архитектуры, просветите, пожалуйста, раньше EAV не юзал.
Сущность Product. К нему есть атрибуты и значения.
У модели атрибуты есть поля: название, слаг (ключ, он будет использоваться впредь для фильтров или поиска).
У модели Values (Значения) есть attribute_id, product_id, value и тд.
Сейчас я хочу реализовать функционал добавления изображений к Product.
Получается, что у нас уже есть готовая EAV. Можно использовать её, но здесь есть свои НО.
1. Если мы будем хранить в базе данных несколько изображений, будут множество записей, которые будут ссылаться одному attribute, а модель атрибут пока что имеет только метод belongTo. То есть, нужно будет дописывать и возможно костылей добавить, пока не знаю.
2. Для установки основного изображения, также нужно создать атрибут и значение.
3. При запросе в бд для получения спецификаций Product нам каждый раз нужно будет вписывать ‘всё кроме атрибут.слаг product_images и product_main_image. Также в некоторых запросах к бд придётся писать слишком много проверок и «лишнего» кода.
Просветите, пожалуйста, как в идеале должно быть?
Может стоит выделить изображения в отдельную модель?
Хочу подойти к данному вопросу грамотно.
Заранее спасибо 🙏🏻