@Pupochkin123

Как построить структуру данных?

Как построить структура данных (без JSONB)?
Products (id, title) - Товары
Features (id, title) - Характеристики
Props (id, title) - Свойства
FeatureProps (feature_id, prop_id) - Связь характеристики со свойствами
ProductProps (product_id, prop_id) - Связь товара со свойствами

Если будет изменено название свойства, как оно изменится во всех товарах соответственно, а если заменить точечно на определённых товарах? Или следует закрыть возможность изменения свойства на уровне логики в коде? Оставлять только добавление?
  • Вопрос задан
  • 228 просмотров
Пригласить эксперта
Ответы на вопрос 1
ipatiev
@ipatiev
Потомок старинного рода Ипатьевых-Колотитьевых
Насколько схема корректная с точки зрения проектирования?

Непонятно, к чему здесь FeatureProps. Зачем тут многие ко многим?
ProductProps (product_id, feature_id, prop_id) достаточно

если я захочу заменить точечно на определённых товарах?


Скорее всего, это будет уже новое свойство.
Если захочется переименовать для отдельных товаров, то понадобится таблица feature_names(feature_id, product_id, name), которую лефт джойнить к запросу, и брать имя из неё, если есть.

Имена таблиц тоже лучше делать в нижнем регистре. Сбережёт некоторое количество нервных клеток.

На всякий случай предупрежу: Если продукт дойдёт до продакшена, то искать всё равно будете Эластиком. И как следствие - выкините весь EAV за ненадобностью, а все свойства сложите в JSON
Но для практики конечно поколупаться конечно полезно
Ответ написан
Ваш ответ на вопрос

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

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