forked from pumadong/cl-commodity
-
Notifications
You must be signed in to change notification settings - Fork 0
/
create_commodity.sql
executable file
·324 lines (306 loc) · 15.9 KB
/
create_commodity.sql
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
#主键原则:
#UUID全局唯一,缺点是占用空间,去掉中划线后,剩余32个字节;大表1000万数据,按照一行多出100Byte计算,则多出1G数据;
#若是InnoDB引擎,因为其是索引组织表,创建的每个非簇索引,都会带上主键,这样占用存储空间更大,需要消耗更多内存和IO;
#自增,是可以手工指定值的,而且对于任何修改自增列的情况会导致自增列的计数器增长,可能会因为这些问题在主备、主从机制产生破坏性影响,优点是:空间和性能略高;
#自定义主键,比如订单号,商品编号,用程序保证唯一性,比如每次增加一个随机数;
#故我们的规则是:常被使用的基础数据表,比如品牌、分类等,就用自增ID,对于业务表,比如商品、订单,就用升序生成的编号、单据号
#参考:
#http://www.cnblogs.com/chutianyao/archive/2012/11/04/2753995.html
#http://blog.chinaunix.net/uid-20639775-id-3154234.html
#BEGIN*************************表单列表***************************BEGIN
#. c_brand :品牌表
#. c_category :分类表
#. c_category_brand :分类品牌限定表,即分类下有哪些品牌,对于品牌比较多时,品牌下拉很长,这个表方便品牌选择
#. c_prop_item :属性项表,网站列表页中的商品查询是搜索API提供,基础数据即来源于此
#. c_prop_value :属性值表,属性项下的值列表
#. c_category_prop_item :分类属性项限定表,即分类下有哪些属性项
#. c_category_prop_value :分类属性值限定表,及分类下有哪些属性值
#. c_commodity :商品表
#. c_product :货品表,即SKU
#. c_commodity_picture : 商品图片表
#. c_commodity_prop :商品属性表
#. c_commodity_log :商品操作日志表
#. c_commodity_price_log :调价日志表
#. c_sizechart :尺码对照表,简称尺码表
#. c_category_brand_sizechart :品牌尺码表限定表,即品牌下有哪些尺码表可以选择
#. c_dictionary : 字典表,状态类型等字典数据都要存储于此,方便使用
#END***************************表单列表***************************END
#品牌表
DROP TABLE IF EXISTS `c_brand`;
CREATE TABLE `c_brand` (
`id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '自增主键' ,
`name` varchar(50) NOT NULL DEFAULT '' COMMENT '品牌名称' ,
`english_name` varchar(50) NOT NULL DEFAULT '' COMMENT '英文名称' ,
`website` varchar(200) NOT NULL DEFAULT '' COMMENT '品牌网址' ,
`pic_large` varchar(100) NOT NULL DEFAULT '' COMMENT '品牌大图(140*120)' ,
`pic_middle` varchar(100) NOT NULL DEFAULT '' COMMENT '品牌中图(110*50)' ,
`pic_small` varchar(100) NOT NULL DEFAULT '' COMMENT '品牌小图(85*40)' ,
`letter` char(1) NOT NULL DEFAULT '' COMMENT '归属哪个字母:A-Z' ,
`sort_no` int(11) NOT NULL DEFAULT 0 COMMENT '排序号' ,
`is_delete` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否删除:1是0否' ,
`create_person` varchar(30) NOT NULL DEFAULT '' COMMENT '记录生成人' ,
`create_date` datetime NOT NULL COMMENT '记录生成时间' ,
`update_person` varchar(30) NOT NULL DEFAULT '' COMMENT '更新人' ,
`update_date` datetime NOT NULL COMMENT '更新时间' ,
PRIMARY KEY (`id`)
)
COMMENT='品牌表'
;
#分类表
DROP TABLE IF EXISTS `c_category`;
CREATE TABLE `c_category` (
`id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '自增主键' ,
`name` varchar(50) NOT NULL DEFAULT '' COMMENT '分类名称' ,
`struct_name` varchar(200) NOT NULL DEFAULT '' COMMENT '中文名称的分类结构' ,
`level` tinyint(4) NOT NULL DEFAULT 1 COMMENT '层级:1,2,3' ,
`parent_id` int(11) UNSIGNED NOT NULL COMMENT '父级id' ,
`sort_no` int(11) NOT NULL DEFAULT 0 COMMENT '排序号' ,
`is_delete` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否删除:1是0否' ,
`create_person` varchar(30) NOT NULL DEFAULT '' COMMENT '记录生成人' ,
`create_date` datetime NOT NULL COMMENT '记录生成时间' ,
`update_person` varchar(30) NOT NULL DEFAULT '' COMMENT '更新人' ,
`update_date` datetime NOT NULL COMMENT '更新时间' ,
PRIMARY KEY (`id`),
INDEX `idx_struct_name` (`struct_name`) USING BTREE
)
COMMENT='分类表'
;
#品牌分类关系表
DROP TABLE IF EXISTS `c_category_brand`;
CREATE TABLE `c_category_brand` (
`id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '自增主键' ,
`category_id` int(11) UNSIGNED NOT NULL COMMENT '分类ID' ,
`brand_id` int(11) UNSIGNED NOT NULL COMMENT '品牌ID' ,
`create_person` varchar(30) NOT NULL DEFAULT '' COMMENT '记录生成人' ,
`create_date` datetime NOT NULL COMMENT '记录生成时间' ,
PRIMARY KEY (`id`) ,
INDEX `idx_category_brand_brand_id` (`brand_id`) USING BTREE ,
INDEX `idx_category_brand_category_id` (`category_id`) USING BTREE
)
COMMENT='品牌分类关系表'
;
#属性项表
DROP TABLE IF EXISTS `c_prop_item`;
CREATE TABLE `c_prop_item` (
`id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '自增主键' ,
`name` varchar(50) NOT NULL COMMENT '属性项名称' ,
`sort_no` int(11) NOT NULL DEFAULT 0 COMMENT '排序号' ,
`is_delete` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否删除:1是0否' ,
`create_person` varchar(30) NOT NULL DEFAULT '' COMMENT '记录生成人' ,
`create_date` datetime NOT NULL COMMENT '记录生成时间' ,
`update_person` varchar(30) NOT NULL DEFAULT '' COMMENT '更新人' ,
`update_date` datetime NOT NULL COMMENT '更新时间' ,
PRIMARY KEY (`id`) ,
INDEX `idx_prop_item_name` (`name`) USING BTREE
)
COMMENT='属性项表'
;
#属性值表
DROP TABLE IF EXISTS `c_prop_value`;
CREATE TABLE `c_prop_value` (
`id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '自增主键' ,
`name` varchar(50) NOT NULL COMMENT '属性值名称' ,
`prop_item_id` int(11) UNSIGNED NOT NULL COMMENT '属性项ID' ,
`sort_no` int(11) NOT NULL DEFAULT 0 COMMENT '排序号' ,
`is_delete` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否删除:1是0否' ,
`create_person` varchar(30) NOT NULL DEFAULT '' COMMENT '记录生成人' ,
`create_date` datetime NOT NULL COMMENT '记录生成时间' ,
`update_person` varchar(30) NOT NULL DEFAULT '' COMMENT '更新人' ,
`update_date` datetime NOT NULL COMMENT '更新时间' ,
PRIMARY KEY (`id`) ,
INDEX `idx_prop_value_name` (`name`) USING BTREE ,
INDEX `idx_prop_item_id` (`prop_item_id`) USING BTREE
)
COMMENT='属性值表'
;
#分类属性项关系表
DROP TABLE IF EXISTS `c_category_prop_item`;
CREATE TABLE `c_category_prop_item` (
`id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '自增主键' ,
`category_id` int(11) UNSIGNED NOT NULL COMMENT '分类ID' ,
`prop_item_id` int(11) UNSIGNED NOT NULL COMMENT '属性项ID' ,
`is_required` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否必填:1是0否' ,
`is_multiple` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否多选:1是0否' ,
`is_show` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否前台显示:1是0否' ,
`create_person` varchar(30) NOT NULL DEFAULT '' COMMENT '记录生成人' ,
`create_date` datetime NOT NULL COMMENT '记录生成时间' ,
`update_person` varchar(30) NOT NULL DEFAULT '' COMMENT '更新人' ,
`update_date` datetime NOT NULL COMMENT '更新时间' ,
PRIMARY KEY (`id`) ,
INDEX `idx_category_id` (`category_id`) USING BTREE ,
INDEX `idx_prop_item_id` (`prop_item_id`) USING BTREE
)
COMMENT='分类属性项关系表'
;
#分类属性值关系表
DROP TABLE IF EXISTS `c_category_prop_value`;
CREATE TABLE `c_category_prop_value` (
`id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '自增主键' ,
`category_id` int(11) UNSIGNED NOT NULL COMMENT '分类ID' ,
`prop_value_id` int(11) UNSIGNED NOT NULL COMMENT '属性值ID' ,
`create_person` varchar(30) NOT NULL DEFAULT '' COMMENT '记录生成人' ,
`create_date` datetime NOT NULL COMMENT '记录生成时间' ,
PRIMARY KEY (`id`) ,
INDEX `idx_category_id` (`category_id`) USING BTREE ,
INDEX `idx_prop_value_id` (`prop_value_id`) USING BTREE
)
COMMENT='分类属性值关系表'
;
#商品表
DROP TABLE IF EXISTS `c_commodity`;
CREATE TABLE `c_commodity` (
`no` varchar(15) NOT NULL COMMENT '主键,商品编号' ,
`sno` varchar(50) NOT NULL COMMENT '供应商款色编码,一般是款号+颜色,供应商方对商品的标记' ,
`style_no` varchar(30) NOT NULL COMMENT '供应商款号,用来标记一款商品' ,
`name` varchar(200) NOT NULL COMMENT '商品名称' ,
`brand_id` int(11) UNSIGNED NOT NULL COMMENT '所属品牌ID' ,
`category_id` int(11) UNSIGNED NOT NULL COMMENT '所属分类ID' ,
`supplier_id` int(11) UNSIGNED NOT NULL DEFAULT 0 COMMENT '所属供应商ID' ,
`sizechart_id` int(11) UNSIGNED NOT NULL DEFAULT 0 COMMENT '所属尺码对照表ID' ,
`color` varchar(50) NOT NULL COMMENT '商品颜色' ,
`pic_color` varchar(200) NOT NULL DEFAULT '' COMMENT '商品颜色图' ,
`pic_ver` int(11) NOT NULL DEFAULT 0 COMMENT '图片版本号,操作一次,版本+1,方便清理CDN缓存' ,
`cost_price` decimal(18,2) NOT NULL DEFAULT 0 COMMENT '成本价' ,
`sale_price` decimal(18,2) NOT NULL DEFAULT 0 COMMENT '销售价' ,
`market_price` decimal(18,2) NOT NULL DEFAULT 0 COMMENT '市场价' ,
`status` tinyint(4) NOT NULL DEFAULT 0 COMMENT '状态:1.新建(待进货)、2.待售(入库后)、3.上架(在售)、4.下架(停售),将来有审核的话用-状态' ,
`is_picture_finish` tinyint(1) NOT NULL DEFAULT 0 COMMENT '图片是否上传完整,一般图片完整就是商编完成的意思:1是0否' ,
`is_delete` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否删除:1是0否' ,
`create_person` varchar(30) NOT NULL DEFAULT '' COMMENT '记录生成人' ,
`create_date` datetime NOT NULL COMMENT '记录生成时间' ,
`update_person` varchar(30) NOT NULL DEFAULT '' COMMENT '更新人' ,
`update_date` datetime NOT NULL COMMENT '更新时间' ,
`line_id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '自增ID,用于其它系统同步等特殊用途' ,
PRIMARY KEY (`no`) ,
INDEX `idx_commodity_supplier_id` (`supplier_id`) USING BTREE ,
INDEX `idx_commodity_brand_id` (`brand_id`) USING BTREE ,
INDEX `idx_commodity_category_id` (`category_id`) USING BTREE ,
INDEX `idx_commodity_line_id` (`line_id`) USING BTREE
)
COMMENT='商品表'
;
#货品表
DROP TABLE IF EXISTS `c_product`;
CREATE TABLE `c_product` (
`no` varchar(20) NOT NULL COMMENT '主键,货品编号' ,
`commodity_no` varchar(15) NOT NULL COMMENT '商品编号' ,
`barcode` varchar(30) NOT NULL COMMENT '条形码' ,
`size` varchar(30) NOT NULL COMMENT '尺码' ,
`is_delete` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否删除:1是0否' ,
`create_person` varchar(30) NOT NULL DEFAULT '' COMMENT '记录生成人' ,
`create_date` datetime NOT NULL COMMENT '记录生成时间' ,
`update_person` varchar(30) NOT NULL DEFAULT '' COMMENT '更新人' ,
`update_date` datetime NOT NULL COMMENT '更新时间' ,
PRIMARY KEY (`no`) ,
INDEX `idx_product_barcode` (`barcode`) USING BTREE ,
INDEX `idx_product_size` (`size`) USING BTREE
)
COMMENT='货品表'
;
#商品图片表
DROP TABLE IF EXISTS `c_commodity_picture`;
CREATE TABLE `c_commodity_picture` (
`name` varchar(20) NOT NULL COMMENT '主键,图片名称' ,
`commodity_no` varchar(15) NOT NULL COMMENT '商品编号' ,
`picture_type` tinyint(4) NOT NULL DEFAULT 0 COMMENT '图片类型' ,
`create_person` varchar(30) NOT NULL DEFAULT '' COMMENT '记录生成人' ,
`create_date` datetime NOT NULL COMMENT '记录生成时间' ,
`update_person` varchar(30) NOT NULL DEFAULT '' COMMENT '更新人' ,
`update_date` datetime NOT NULL COMMENT '更新时间' ,
PRIMARY KEY (`name`) ,
INDEX `idx_commodity_picture_commodity_no` (`commodity_no`) USING BTREE
)
COMMENT='商品图片表'
;
#商品属性表
DROP TABLE IF EXISTS `c_commodity_prop`;
CREATE TABLE `c_commodity_prop` (
`id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '自增主键' ,
`commodity_no` varchar(15) NOT NULL COMMENT '商品编号' ,
`prop_value_id` int(11) UNSIGNED NOT NULL COMMENT '属性值ID' ,
`create_person` varchar(30) NOT NULL DEFAULT '' COMMENT '记录生成人' ,
`create_date` datetime NOT NULL COMMENT '记录生成时间' ,
`update_person` varchar(30) NOT NULL DEFAULT '' COMMENT '更新人' ,
`update_date` datetime NOT NULL COMMENT '更新时间' ,
PRIMARY KEY (`id`) ,
INDEX `idx_commodity_prop_commodity_no` (`commodity_no`) USING BTREE
)
COMMENT='商品属性表'
;
#商品日志表
DROP TABLE IF EXISTS `c_commodity_log`;
CREATE TABLE `c_commodity_log` (
`id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '自增主键' ,
`commodity_no` varchar(15) NOT NULL COMMENT '商品编号' ,
`log_type_id` tinyint(4) NOT NULL DEFAULT 0 COMMENT '日志类型ID' ,
`remark` varchar(500) NOT NULL DEFAULT '' COMMENT '日志描述' ,
`create_person` varchar(30) NOT NULL DEFAULT '' COMMENT '记录生成人' ,
`create_date` datetime NOT NULL COMMENT '记录生成时间' ,
PRIMARY KEY (`id`) ,
INDEX `idx_commodity_log_commodity_no` (`commodity_no`) USING BTREE
)
COMMENT='商品日志表'
;
#商品调价日志表
DROP TABLE IF EXISTS `c_commodity_price_log`;
CREATE TABLE `c_commodity_price_log` (
`id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '自增主键' ,
`commodity_no` varchar(15) NOT NULL COMMENT '商品编号' ,
`log_type_id` tinyint(4) NOT NULL COMMENT '日志类型:1成本价2销售价3市场价' ,
`old_price` decimal(18,2) NOT NULL COMMENT '原价格' ,
`new_price` decimal(18,2) NOT NULL COMMENT '新价格' ,
`create_person` varchar(30) NOT NULL DEFAULT '' COMMENT '记录生成人' ,
`create_date` datetime NOT NULL COMMENT '记录生成时间' ,
PRIMARY KEY (`id`) ,
INDEX `idx_commodity_log_commodity_no` (`commodity_no`) USING BTREE
)
COMMENT='商品调价日志表'
;
#商品尺码对照表
DROP TABLE IF EXISTS `c_sizechart`;
CREATE TABLE `c_sizechart` (
`id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '自增主键' ,
`title` varchar(50) NOT NULL COMMENT '名称' ,
`content` varchar(1024) NOT NULL COMMENT '内容,JSON' ,
`remark` varchar(100) NOT NULL DEFAULT '' COMMENT '备注' ,
`sizechart_type_id` tinyint(4) NOT NULL DEFAULT 0 COMMENT '类型:1不限制2限制分类3限制品牌4限制分类和品牌' ,
`is_delete` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否删除:1是0否' ,
`create_person` varchar(30) NOT NULL DEFAULT '' COMMENT '记录生成人' ,
`create_date` datetime NOT NULL COMMENT '记录生成时间' ,
`update_person` varchar(30) NOT NULL DEFAULT '' COMMENT '更新人' ,
`update_date` datetime NOT NULL COMMENT '更新时间' ,
PRIMARY KEY (`id`)
)
COMMENT='商品尺码对照表'
;
#商品尺码对照表使用限制表-只有存在限制的尺码对照表才会在这个表中有数据
DROP TABLE IF EXISTS `c_sizechart_category_brand`;
CREATE TABLE `c_sizechart_category_brand` (
`id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '自增主键' ,
`sizechart_id` int(11) UNSIGNED NOT NULL COMMENT '尺码对照表ID' ,
`cat_id` int(11) UNSIGNED NOT NULL DEFAULT 0 COMMENT '限制分类ID,0代表不限制' ,
`brand_id` int(11) UNSIGNED NOT NULL DEFAULT 0 COMMENT '限制分类ID,0代表不限制' ,
`create_person` varchar(30) NOT NULL DEFAULT '' COMMENT '记录生成人' ,
`create_date` datetime NOT NULL COMMENT '记录生成时间' ,
PRIMARY KEY (`id`) ,
INDEX `idx_sizechart_category_brand_sizechart_id` (`sizechart_id`) USING BTREE ,
INDEX `idx_sizechart_category_brand_cat_id` (`cat_id`) USING BTREE ,
INDEX `idx_sizechart_category_brand_brand_id` (`brand_id`) USING BTREE
)
COMMENT='商品尺码对照表使用限制表-只有存在限制的尺码对照表才会在这个表中有数据'
;
#类型状态字典表
DROP TABLE IF EXISTS `c_dictionary`;
CREATE TABLE `c_dictionary` (
`id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '自增主键' ,
`group` varchar(50) NOT NULL COMMENT '状态分组' ,
`code` tinyint(4) NOT NULL COMMENT '状态代码' ,
`name` varchar(100) NOT NULL COMMENT '状态名称' ,
`sort_no` tinyint(4) NOT NULL DEFAULT 0 COMMENT '排序号' ,
`create_person` varchar(30) NOT NULL DEFAULT '' COMMENT '记录生成人' ,
`create_date` datetime NOT NULL COMMENT '记录生成时间' ,
PRIMARY KEY (`id`) ,
INDEX `idx_dictionary_group` (`group`) USING BTREE
)
COMMENT='类型状态字典表'
;