鍍金池/ 問(wèn)答/PHP  數(shù)據(jù)庫(kù)  網(wǎng)絡(luò)安全  電子商務(wù)/ 類(lèi)似淘寶的sku

類(lèi)似淘寶的sku

首先數(shù)據(jù)庫(kù)的設(shè)計(jì)我在百度上找了一大堆,可以說(shuō)得上是眾說(shuō)紛紜??!我看到一個(gè)中間表是這樣設(shè)計(jì)的,商品ID sku屬性,單價(jià)庫(kù)存,看到中間屬性存的是json然后就懵了,請(qǐng)各位大神告知什么操作能把這些屬性還有值扔到一起,并且全部塞到指定的商品下邊?

回答
編輯回答
有點(diǎn)壞

json_encode了解一下

2018年9月13日 12:23
編輯回答
寫(xiě)榮

關(guān)于SKU的概念應(yīng)該先谷歌了解下
sku是屬性and規(guī)格組成的,而屬性規(guī)格又需要相互獨(dú)立,為了避免未來(lái)業(yè)務(wù)擴(kuò)展,實(shí)際一個(gè)屬性屬性鏈接另一個(gè)規(guī)格屬性則就是一個(gè)sku,例如:

規(guī)格:顏色 屬性:紅色
規(guī)格:尺碼 屬性:xl
規(guī)格:尺碼 屬性:xxl

那么它的sku就又二個(gè),(紅色+xl)(紅色+xxl)

下面是我的數(shù)據(jù)表設(shè)計(jì)

商品表

CREATE TABLE `product` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '商品標(biāo)題',
  `category_id` int(11) NOT NULL COMMENT '商品分類(lèi)編號(hào)',
  `mer_id` int(11) NOT NULL COMMENT '商家編號(hào)',
  `type_id` tinyint(4) NOT NULL COMMENT '類(lèi)型編號(hào)',
  `sketch` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '簡(jiǎn)述',
  `intro` text COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '商品描述',
  `keywords` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '商品關(guān)鍵字',
  `marque` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '商品型號(hào)',
  `barcode` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '倉(cāng)庫(kù)條碼',
  `brand_id` int(11) NOT NULL COMMENT '品牌編號(hào)',
  `virtual` int(11) NOT NULL DEFAULT '0' COMMENT '虛擬購(gòu)買(mǎi)量',
  `price` decimal(8,2) NOT NULL COMMENT '商品價(jià)格',
  `market_price` decimal(8,2) NOT NULL COMMENT '市場(chǎng)價(jià)格',
  `integral` int(11) NOT NULL DEFAULT '0' COMMENT '可使用積分抵消',
  `stock` int(11) NOT NULL COMMENT '庫(kù)存量',
  `warning_stock` int(11) NOT NULL COMMENT '庫(kù)存警告',
  `picture_url` varchar(125) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '封面圖',
  `status` tinyint(4) NOT NULL COMMENT '狀態(tài) -1=>下架,1=>上架,2=>預(yù)售,0=>未上架',
  `is_package` enum('0','1') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '0' COMMENT '是否是套餐',
  `is_integral` enum('0','1') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '0' COMMENT '是否是積分產(chǎn)品',
  `deleted_at` timestamp NULL DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=136 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

sku表

CREATE TABLE `product_sku` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `product_id` int(11) NOT NULL COMMENT '商品編碼',
  `name` varchar(125) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'sku名稱(chēng)',
  `img` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '主圖',
  `price` decimal(8,2) NOT NULL COMMENT '價(jià)格',
  `stock` int(11) NOT NULL DEFAULT '0' COMMENT '庫(kù)存',
  `code` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '商品編碼',
  `barcode` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '商品條形碼',
  PRIMARY KEY (`id`),
  KEY `product_sku_name_product_id_index` (`name`,`product_id`)
) ENGINE=InnoDB AUTO_INCREMENT=1125 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

規(guī)格表

CREATE TABLE `product_attribute` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `category_id` int(11) NOT NULL COMMENT '商品類(lèi)別編號(hào)',
  `name` varchar(25) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '屬性名稱(chēng)',
  `sort` int(11) NOT NULL DEFAULT '999' COMMENT '排列次序',
  PRIMARY KEY (`id`),
  KEY `product_attribute_category_id_name_index` (`category_id`,`name`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

屬性表

CREATE TABLE `product_attribute_option` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(125) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '選項(xiàng)名稱(chēng)',
  `attr_id` int(11) NOT NULL COMMENT '屬性編碼',
  `sort` int(11) NOT NULL DEFAULT '999' COMMENT '排序',
  PRIMARY KEY (`id`),
  KEY `product_attribute_option_name_attr_id_index` (`name`,`attr_id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

規(guī)格屬性綁定SKU的表

CREATE TABLE `product_attribute_and_option` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `sku_id` int(11) NOT NULL COMMENT 'sku編碼',
  `option_id` int(11) NOT NULL DEFAULT '0' COMMENT '屬性選項(xiàng)編碼',
  `attribute_id` int(11) NOT NULL COMMENT '屬性編碼',
  `sort` int(11) NOT NULL DEFAULT '999' COMMENT '排序',
  `supplier_option_id` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `product_attribute_and_option_sku_id_option_id_attribute_id_index` (`sku_id`,`option_id`,`attribute_id`)
) ENGINE=InnoDB AUTO_INCREMENT=4819 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
2017年9月16日 10:15