QQ登录 账号密码登陆 官网首页
首页 > B2C商城 > 开发手册 > 开发教程 > 正文

规格表设计原理机制

TPshop的规格表设计原理机制

TPshop商品规格比较简单, 数据库设计清晰, 先看上图购买商品时对应的选择, 不同规格有着不同的价格和不同的库存。


 

1
2
3
4
5
6
7
再看看后台对应的设置,手机例子 
颜色:黑色 白色 金色
内存:32G 64G  128G 
因为 黑色手机也有 32G 64G  128G , 然后白色手机也有32G 64G  128G  金色手机也有 32G 64G  128G  所以这里是有9种组合
9种价格 9种库存 9种条码 当拿到其中一个条码时就知道这个商品(手机)是什么规格是什么颜色什么内存等。。。。
 
下面来看看表结构设计



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
如上图可以看出 
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