Есть товары и есть атрибуты, некоторые атрибуты меняют стоимость товара, некоторые - нет.
Пример:
телевизор - товар, диагональ - атрибут. 40 дюймов(значение атрибута) - 1000р, 50 дюймов - 2000р.
hdmi кабель - товар, атрибутов нет, цена - 100р.
Получается, должна быть какая-то дефолтная цена, и в случае наличия атрибута, который влияет на цену, он ее будет перекрывать.
То, что вышло у меня:
Таблица products - id, price
Таблица attributes - id, name
Таблица products_attributes - id, product_id, attribute_id, attribute_value, price
В products_attributes поле price является необязательным, если оно заполнено - цена берется из него, если нет - из таблицы products.
1 вопрос - является ли такая модель правильной?
2 - являются ли эти таблицы примером нормальных форм или надо что-то изменить, к примеру вынести цены товаров в отдельную таблицу?
Спасибо.
Нормально, у меня точно так же)))
Только я еще вместе с ценами храню и кол-во там же. Так как приходит товар именно так - разбивка по опциям (в моем случае это РАЗМЕР одежды).
По поводу названия - есть некий устаканившийся стандарт, вот как это обзывается в десятке магазинных движков: