Добрый день, при создании архивов заказов возник вопрос о правильном подходе к реализации структуры базы данных.
Как обычно бывает: посетитель помещает в корзину N товаров. Каждый товар имеет свои различные параметры (вес, цвет, цена, количество и пр.)
Пока что вижу следующий вид таблиц:
CREATE TABLE `Orders` (
`id` INT NOT NULL AUTO_INCREMENT,
`order_date` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
`order_user` INT NOT NULL DEFAULT '0',
`order_method` VARCHAR(10) NOT NULL DEFAULT 'mail',
`order_comment` VARCHAR(255) NOT NULL DEFAULT 'Ожидает проверки',
`order_status` INT NOT NULL DEFAULT '0'
)
CREATE TABLE `Orders-Product` (
`id` INT NOT NULL AUTO_INCREMENT,
`order_id` INT NOT NULL DEFAULT '0',
`product_id` INT NOT NULL DEFAULT '0',
`product_title` VARCHAR(255) NOT NULL DEFAULT '',
`product_count` INT NOT NULL DEFAULT '0',
`product_price` VARCHAR(10) NOT NULL DEFAULT '0'
)
CREATE TABLE `Orders-Meta` (
`id` INT NOT NULL AUTO_INCREMENT,
`order_id` INT NOT NULL DEFAULT '0',
`meta_id` INT NOT NULL DEFAULT '0',
`meta_key` VARCHAR(255) NOT NULL DEFAULT '',
`meta_value` TEXT NOT NULL
)
В таблице с прочими параметрами
Orders-Meta будут записаны данные такие как: Информация о заказчике, предоставленная на момент заказа, параметры товара, скидки, акции, и прочие параметры.
Насколько верен такой подход? Возможно есть лучшее решение?
Спасибо!