2016-03-31 4 views
0

Я работаю над сайтом электронной коммерции. У меня есть 3 уровня категорииsql database design for ecommerce

CREATE TABLE IF NOT EXISTS `parent_categories` (
     `parent_cat_id` int(11) NOT NULL AUTO_INCREMENT, 
     `parent_cat_name` varchar(200) NOT NULL, 
     `created_on` datetime NOT NULL, 
     `updated_on` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, 
     `status` int(11) NOT NULL COMMENT '1=0 active ', 
     PRIMARY KEY (`parent_cat_id`) 
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=49 ; 



CREATE TABLE IF NOT EXISTS `child_categories` (
    `child_cat_id` int(11) NOT NULL AUTO_INCREMENT, 
    `child_cat_name` varchar(200) NOT NULL, 
    `parent_cat_id` int(11) NOT NULL, 
    `created_on` datetime NOT NULL, 
    `updated_on` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, 
    PRIMARY KEY (`child_cat_id`), 
    KEY `fk_parent_cat_id` (`parent_cat_id`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=64 ; 



CREATE TABLE IF NOT EXISTS `sub_child_categories` (
    `sub_child_cat_id` int(11) NOT NULL AUTO_INCREMENT, 
    `sub_child_cat_name` varchar(200) NOT NULL, 
    `child_cat_id` int(11) NOT NULL, 
    `created_on` datetime NOT NULL, 
    `updated_on` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, 
    PRIMARY KEY (`sub_child_cat_id`), 
    KEY `fk_child_cat_id` (`child_cat_id`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=53 ; 

Это мои продукты таблица

CREATE TABLE IF NOT EXISTS `products` (
    `product_id` int(11) NOT NULL AUTO_INCREMENT, 
    `parent_cat_id` int(11) NOT NULL, 
    `child_cat_id` int(11) NOT NULL, 
    `sub_child_cat_id` int(11) NOT NULL, 
    `name` varchar(100) NOT NULL, 
    `sku` varchar(100) NOT NULL, 
    `brand` varchar(100) NOT NULL, 
    `description` text NOT NULL, 
    `discount` int(11) NOT NULL, 
    `tax` int(11) NOT NULL, 
    PRIMARY KEY (`product_id`), 
    KEY `p_id` (`parent_cat_id`), 
    KEY `ch_id` (`child_cat_id`), 
    KEY `sub_ch_id` (`sub_child_cat_id`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ; 

Теперь Мои сомнения в том, как разработать таблицу для хранения технических характеристик продукта на основе категорий

Например, рассмотрим две категории:

  1. Мода
  2. еда

В моде

  1. Одежда-> Рубашки: цвета, материал, размер, рукав, размер диаграмма
  2. footware-> Обувь: цвета , материал, размер, диаграмма размеров
  3. ethenic-> Shawl: цвет, материал, размер
  4. Аккуратно Body> духи: цена, основанная на весе

В еде

  1. Сладкие: цвет, цена в расчете на массу
  2. pickels -> veg: Цена по весу
+0

Вы нашли решение? – stom

ответ

1

нормально позволяет принимать:

цвета, материал, размер

теперь представьте себе, у вас есть такой продукт, как по команде футбола футболка. и эта рубашка поставляется в 3 разных цветах и ​​4 разных размерах. 3 x 4 = 12 вариаций. поэтому есть одна ссылка на страницу с изображением и описанием футбольной футбольной команды. И есть 12 различных вариантов этой рубашки, доступных для продажи.

самая критическая точка - каждая вариация будет иметь отдельный инвентарь, и если вы продаете где-то вроде амазонки - отдельные коды UPC или EAN. поэтому наиболее практичным является наличие записи базы данных для каждого варианта, и эта запись базы данных должна содержать атрибуты размера, цвета, цены, инвентаря под рукой и т. д.

так что это приводит к идее родителя - Детские товары. продукт, который мы видим на странице, является родительским продуктом. фактические рубашки, которые различаются по размеру, цвету и т. д. - это детские продукты. heres больше информации от amazon seller central http://www.amazon.com/gp/help/customer/display.html/?nodeId=200779220