作者:陈业贵 华为云享专家 51cto(专家博主 明日之星 TOP红人) 阿里云专家博主
CREATE TABLE t_spec_group(
id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT COMMENT "主键",
spg_id INT UNSIGNED NOT NULL COMMENT "品类编号",
`name` VARCHAR(200) NOT NULL COMMENT "品类名称",
UNIQUE INDEX unq_spg_id(spg_id),
UNIQUE INDEX unq_name(`name`),
INDEX idx_spg_id(spg_id)
) COMMENT ="品类表"
CREATE TABLE t_spec_param(
id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT COMMENT "主键",
spg_id INT UNSIGNED NOT NULL COMMENT "品类编号",
spp_id INT UNSIGNED NOT NULL COMMENT "参数编号",
`name` VARCHAR(200) NOT NULL COMMENT "参数名称",
`numeric` BOOLEAN NOT NULL COMMENT "是否为数字参数",
unit varchar(200) COMMENT "单位(量词)",
`generic` BOOLEAN NOT NULL COMMENT "是否为通用参数",
searching BOOLEAN NOT NULL COMMENT "是否用于通用搜索",
segements varchar(500) COMMENT "参数值",
INDEX idx_spg_id(spg_id),
INDEX idx_spp_id(spp_id)
)COMMENT="参数值";
举个例子,手机是一类。
比如手机是一类,手机的各种颜色 型号什么的就是参数
因为比如手机上也有各种不同的参数比如型号 颜色之类的.而没有品类表就没有参数表.因为要代表某个东西的参数才行哦
让大家根据个人的喜好选择喜欢的东西.
能够根据品类表的id能够直接找到参数表中所代表品类表中某个id的字段.比如从而找到手机其下的参数.
用于进行sku的操作时用到。
一个品类对应多个参数。 比如一个手机对应多个参数(型号 颜色)
CREATE TABLE t_spec_group(
id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT COMMENT "主键",
spg_id INT UNSIGNED NOT NULL COMMENT "品类编号",
`name` VARCHAR(200) NOT NULL COMMENT "品类名称",
UNIQUE INDEX unq_spg_id(spg_id),
UNIQUE INDEX unq_name(`name`),
INDEX idx_spg_id(spg_id)
) COMMENT ="品类表"
1)增加记录时,可以不用指定id字段,不用担心主键重复问题。 2)数据库自动编号,速度快,而且是增量增长,按顺序存放,对于检索非常有利; 3)数字型,占用索引空间小,范围查找与排序友好,在程序中传递也方便;
主键是能确定一条记录的唯一标识,主键字段必须唯一,必须非空,一个表中只能有一个主键,主键可以包含一个或多个字段。
打个比方,一条记录包括身份正号,姓名,年龄,学校,国籍,性别等。身份证号是唯一能确定你这个人的,其他都可能有重复,所以,身份证号是主键。 设置主键的作用是唯一性。非空的。说明了自增的id不会重复的。
COMMENT ""是注释.作用是别人能够轻易看懂这个字段或表或数据库的作用是啥?
比如手机这个品类。苹果手机什么的。
品类编号。举个例子。比如太多品类的话,可以划分范围。比如比如1000-2000是家用电器类。3000-4000是医疗用品什么的。我一看到这个字段spg_id数值就知道这个品类是什么。
代表不能是负数,这个值.
为什么要使用索引? 因为搜索起来比较快. 什么时候需要使用索引? 要搜索的时候.
CREATE TABLE t_spec_param(
id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT COMMENT "主键",
spg_id INT UNSIGNED NOT NULL COMMENT "品类编号",
spp_id INT UNSIGNED NOT NULL COMMENT "参数编号",
`name` VARCHAR(200) NOT NULL COMMENT "参数名称",
`numeric` BOOLEAN NOT NULL COMMENT "是否为数字参数",
unit varchar(200) COMMENT "单位(量词)",
`generic` BOOLEAN NOT NULL COMMENT "是否为通用参数",
searching BOOLEAN NOT NULL COMMENT "是否用于通用搜索",
segements varchar(500) COMMENT "参数值",
INDEX idx_spg_id(spg_id),
INDEX idx_spp_id(spp_id)
)COMMENT="参数值";
1)增加记录时,可以不用指定id字段,不用担心主键重复问题。 2)数据库自动编号,速度快,而且是增量增长,按顺序存放,对于检索非常有利; 3)数字型,占用索引空间小,范围查找与排序友好,在程序中传递也方便;
参数表的spg_id关联品类表的id。
某个品类表(比如手机)的id其下的参数(颜色 型号 电池)
name
VARCHAR(200) NOT NULL COMMENT “参数名称”,参数的名称,比如型号 颜色
numeric
BOOLEAN NOT NULL COMMENT “是否为数字参数”,参数(比如型号)是不是数字的。苹果的型号就不是数字的.
比如手机的内存是256GB的
generic
BOOLEAN NOT NULL COMMENT “是否为通用参数”,是不是要显示在主要位置.
比如ios 安卓。是不能被用户随便填写的东西.
(比如)搜索手机或者手机其下的参数
对于关联表查询的。要设置索引。快一点.