新零售品类表+参数表怎么设计(模仿)深度解析

2022-11-02 11:18:25 浏览数 (1)

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

文章目录

  • sql
  • sql数据
    • 品类表:
    • 参数表:
  • 追求细节:
    • 什么是品类表?
    • 什么是参数表?
    • 为什么要有品类表?为什么要有参数表?
    • 品类表 参数表的作用:
    • 品类表 参数表的关联关系的作用:
    • 品类表 参数表的应用场景?
    • 品类表 参数表的关联关系是什么?
  • 解析下平品类表的字段(为什么要有这个字段的)?
  • 第一步:为什么要这样设计品类表?
    • 第一:id要自增(AUTO_INCREMENT),作用是什么呢?
    • 为什么要设置主键,主键作用是什么?
    • COMMENT "" 是什么。作用?
    • name代表这个品类的名字是什么?
    • 为什么要有spg_id字段,是什么意思?
    • 为什么要设置unsigned,意思是什么?
    • 索引的作用是什么,什么时候需要用到索引UNIQUE INDEX unq_spg_id(spg_id);?
  • 第二步:为什么要这样设计参数表?
    • 第一:id要自增(AUTO_INCREMENT),作用是什么呢?
    • 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 "是否为通用参数",
    • segements varchar(500) COMMENT "参数值",?
    • searching BOOLEAN NOT NULL COMMENT "是否用于通用搜索",
    • INDEX idx_spg_id(spg_id),INDEX idx_spp_id(spp_id)

sql

代码语言:javascript复制
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 ="品类表"
代码语言:javascript复制
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数据

品类表:

参数表:

追求细节:

什么是品类表?

举个例子,手机是一类。

什么是参数表?

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

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

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

品类表 参数表的作用:

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

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

能够根据品类表的id能够直接找到参数表中所代表品类表中某个id的字段.比如从而找到手机其下的参数.

品类表 参数表的应用场景?

用于进行sku的操作时用到。

品类表 参数表的关联关系是什么?

一个品类对应多个参数。 比如一个手机对应多个参数(型号 颜色)

解析下平品类表的字段(为什么要有这个字段的)?

代码语言:javascript复制
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);?

为什么要使用索引? 因为搜索起来比较快. 什么时候需要使用索引? 要搜索的时候.

第二步:为什么要这样设计参数表?

代码语言:javascript复制
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)

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

0 人点赞