TPshop的規格表設計原理機制


 

TPshop商品規格比較簡單, 數據庫設計清晰, 先看上圖購買商品時對應的選擇, 不同規格有着不同的價格和不同的庫存。

再看看后台對應的設置,手機例子

顏色:黑色 白色 金色

內存:32G 64G  128G

因為 黑色手機也有 32G 64G  128G , 然后白色手機也有32G 64G  128G  金色手機也有 32G 64G  128G  所以這里是有9種組合

9種價格 9種庫存 9種條碼 當拿到其中一個條碼時就知道這個商品(手機)是什么規格是什么顏色什么內存等。。。。

下面來看看表結構設計

 

如上圖可以看出

1. tp_goods_type 表的 id 4 表示手機,

2. tp_spec 表 type_id 里面的 4表是手機 id 16表示顏色  6表示內存

3. tp_spec_item表  spec_id 6表示內存 id 28表示 31G

4. tp_spec_item表  spec_id 16表示顏色 id 55表示 黑色

5. tp_spec_goods_price表的 key字段 28_55 表示32G 黑色 剛好對應 tp_spec_item表

如上圖清晰可以理解, 如果不理解多看幾遍完全可以簡單理解。

以下是創建這四張表的sql 代碼。 自己也可以在本地TPshop數據庫查看一下

tpshop.tp_goods_type 商品類型表
 
CREATE TABLE `tp_goods_type` (
  `id` smallint(5) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id自增',
  `name` varchar(60) NOT NULL DEFAULT '' COMMENT '類型名稱',
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=34 DEFAULT CHARSET=utf8
 
tpshop.tp_spec 規格表
 
CREATE TABLE `tp_spec` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '規格表',
  `type_id` int(11) DEFAULT '0' COMMENT '規格類型',
  `name` varchar(55) DEFAULT NULL COMMENT '規格名稱',
  `order` int(11) DEFAULT '50' COMMENT '排序',
  `search_index` tinyint(1) DEFAULT '0' COMMENT '是否需要檢索',
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=28 DEFAULT CHARSET=utf8
 
 
tpshop.tp_spec_item 規格項表
 
CREATE TABLE `tp_spec_item` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '規格項id',
  `spec_id` int(11) DEFAULT NULL COMMENT '規格id',
  `item` varchar(54) DEFAULT NULL COMMENT '規格項',
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=123 DEFAULT CHARSET=utf8
 
tpshop.tp_spec_goods_price  規格對應 價格 庫存 條碼表
 
CREATE TABLE `tp_spec_goods_price` (
  `goods_id` int(11) DEFAULT '0' COMMENT '商品id',
  `key` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL COMMENT '規格鍵名',
  `key_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL COMMENT '規格鍵名中文',
  `price` decimal(10,2) DEFAULT NULL COMMENT '價格',
  `store_count` int(11) unsigned DEFAULT '10' COMMENT '庫存數量',
  `bar_code` varchar(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT '' COMMENT '商品條形碼'
) ENGINE=MyISAM DEFAULT CHARSET=utf8

這4個表解決相同盤子的手機,因參數不同引發的不同的價格


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM