Делаю интернет магазин. И возникла очень большая проблема, уже неделю с ней сижу и не могу понять как делать. А смысл такой: у каждого товара есть размерный ряд, у каждого размера своя цена. А как мне это все реализовать?
Я вот думаю создать под эти размеры отдельную таблицу, но как мне в админке (которая сгенерирована через gii) это сделать, Я не представляю как это вообще продумать.
Люди добрые подскажите что и как делать.
product: id | title | cost и т.д.
size: id | size_name | some_size_param
product_size: id | product_id | size_id
Третья таблица связующая. В моделе Product связь с Size через таблицу product_size
Тогда для каждого товара можно назначить, любой набор размеров и нет дублирования данных.
Ну или как вариант просто хранить json с размерами прямо в таблице продукта
По сути, это получается что нужно вначале добавить размер и цену в таблицу size. А потом в product добавлять эти размер и цену из size. На подобии как на твоем канале, в уроке про теги? я верно все понял?
www.yiiframework.com/doc-2.0/yii-helpers-json.html
Делать преобразования можно в моделе, цепляясь за события AR, в beforeSave загонять в json и в afterFind обратно в массив. Это простой вариант, но не оптимальный.
На подобии как на твоем канале, в уроке про теги?
Да. Похоже. Тогда размеров не много, а связей много, избегаем дублирования инфы + можем манипулировать удобно данными, например выборка товаров, в которых есть размер xxl, допустим, в случае с json такой фильтр без адских танцев с бубном не сделаешь.
Ну и если завтра будет решение сменить все "размеры для малышей" на "супер маленький", надо будет поправить 1 строку в базе, а не перебирать все товары, разбирать json и менять.
Пихайте в таблицу с товарами ещё поле размера и группы.
То есть на каждый размер товара будет отдельная запись в таблице товаров. Таким образом по id товара точно можно будет определить его размер. А группа - будет указывать на все размеры этого товара.