新零售品类表+参数表怎么设计(模仿) 二次修改

作者:陈业贵 华为云享专家 51cto(专家博主 明日之星 TOP红人) 阿里云专家博主

文章目录


sql

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="参数值";

sql数据

品类表:

在这里插入图片描述

参数表:

在这里插入图片描述

追求细节:

品类表数据解析:

字段解析:

你看品类表啊。你说一个人在公司里面有员工编号,代表这个员工在公司的唯一标识(像身份证一样)。
那你看品类表。是不是得有品类编号啊。

问题?

名字不可以比做品类编号吗?
不能。因为公司里面有重名的人咋整呢?对吧.
那你看品类表编号是有了,但是这个名字也得有吧。就好比一个人有名字一样。

类型大小解析:

spg_id:一般这种类型的。电商的是数字吧(品类编号)。类型的话,int。int不写大小的话。默认为int(11),其中的11只是指示显示长度,
并不表示存储长度。
name:名字这种的话,一般是varchar.大小的话。看实际情况来定吧。这里是200.代表不管是英文还是中文都可以存放200个

参数表数据解析:

字段解析:

你看参数表啊。你说一个人在公司里面有员工编号,代表这个员工在公司的唯一标识(像身份证一样)。
那参数表是不是得有参数编号啊。代表这个参数编号对应某个员工嘛。对吧.
参数名称也有有吧。那好比你叫什么名字对吧。我们总不能叫别人编号吧.对吧.
那参数不可以都是数字的吧。对吧。
参数也有单位的对吧。比如GB什么的。对吧。
通用参数的意思我的理解是这个手机可以用。那个手机也可以用的通用的参数。
通用搜索的意思是我理解的意思是这个参数可以搜索到符合他这个参数的手机.
参数值。就是比如蓝色 红色 紫色的什么的。
最后:
这个参数必须关联某个品类表。举个例子。手机其下的参数.

字段解析:

numeric BOOLEAN NOT NULL COMMENT “是否为数字参数”,

是否的话,都是tinyint,代表true,或者false.

not null的话

这种的视情况而定。比如你要退货。是不是得填写一些信息啊。而这些信息有一些必填的啊。对吧。必填的就是not null.不能为空啊.

unsigned

代表不能为负数.可以是0可以是正数。.

什么是品类表?

举个例子,手机是一类。

什么是参数表?

比如手机是一类,手机的各种颜色 型号什么的就是参数

为什么要有品类表?为什么要有参数表?

因为比如手机上也有各种不同的参数比如型号 颜色之类的.而没有品类表就没有参数表.因为要代表某个东西的参数才行哦

品类表+参数表的作用:

让大家根据个人的喜好选择喜欢的东西.

品类表+参数表的关联关系的作用:

能够根据品类表的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 ="品类表"

第一步:为什么要这样设计品类表?

第一:id要自增(AUTO_INCREMENT),作用是什么呢?

1)增加记录时,可以不用指定id字段,不用担心主键重复问题。
2)数据库自动编号,速度快,而且是增量增长,按顺序存放,对于检索非常有利;
3)数字型,占用索引空间小,范围查找与排序友好,在程序中传递也方便;

为什么要设置主键,主键作用是什么?

主键是能确定一条记录的唯一标识,主键字段必须唯一,必须非空,一个表中只能有一个主键,主键可以包含一个或多个字段。

打个比方,一条记录包括身份正号,姓名,年龄,学校,国籍,性别等。身份证号是唯一能确定你这个人的,其他都可能有重复,所以,身份证号是主键。
设置主键的作用是唯一性。非空的。说明了自增的id不会重复的。

COMMENT “” 是什么。作用?

COMMENT ""是注释.作用是别人能够轻易看懂这个字段或表或数据库的作用是啥?

name代表这个品类的名字是什么?

比如手机这个品类。苹果手机什么的。

为什么要有spg_id字段,是什么意思?

品类编号。举个例子。比如太多品类的话,可以划分范围。比如比如1000-2000是家用电器类。3000-4000是医疗用品什么的。我一看到这个字段spg_id数值就知道这个品类是什么。

为什么要设置unsigned,意思是什么?

代表不能是负数,这个值.

索引的作用是什么,什么时候需要用到索引UNIQUE INDEX unq_spg_id(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="参数值";

第一:id要自增(AUTO_INCREMENT),作用是什么呢?

1)增加记录时,可以不用指定id字段,不用担心主键重复问题。
2)数据库自动编号,速度快,而且是增量增长,按顺序存放,对于检索非常有利;
3)数字型,占用索引空间小,范围查找与排序友好,在程序中传递也方便;

spg_id INT UNSIGNED NOT NULL COMMENT "品类编号"这样设计的作用?

参数表的spg_id关联品类表的id。

spp_id INT UNSIGNED NOT NULL COMMENT “参数编号”,作用?

某个品类表(比如手机)的id其下的参数(颜色 型号 电池)

name VARCHAR(200) NOT NULL COMMENT “参数名称”,

参数的名称,比如型号 颜色

numeric BOOLEAN NOT NULL COMMENT “是否为数字参数”,

参数(比如型号)是不是数字的。苹果的型号就不是数字的.

unit varchar(200) COMMENT “单位(量词)”,

比如手机的内存是256GB的

generic BOOLEAN NOT NULL COMMENT “是否为通用参数”,

是不是要显示在主要位置.

segements varchar(500) COMMENT “参数值”,?

比如ios 安卓。是不能被用户随便填写的东西.

searching BOOLEAN NOT NULL COMMENT “是否用于通用搜索”,

(比如)搜索手机或者手机其下的参数

INDEX idx_spg_id(spg_id),INDEX idx_spp_id(spp_id)

对于关联表查询的。要设置索引。快一点.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

贵哥的编程之路(热爱分享)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值