作者:陈业贵

文章目录

  • ​​解析sku字段​​
  • ​​解析sku类型大小​​
  • ​​images json comment "商品图片",​​
  • ​​param json not null COMMENT "参数",​​
  • ​​boolean是啥?​​
  • ​​timestamp 详解:​​
  • ​​为什么定义索引?​​
  • ​​sql​​
  • ​​sku商品表​​
  • ​​spu产品表​​
  • ​​解析字段:​​
  • ​​产品表数据:​​
  • ​​产品表spu与商品表的关系:​​
  • ​​mysql表设计需要注意的地方:​​
  • ​​价格:需要用到decimal这个类型。​​
  • ​​images json comment "商品图片",为什么存图片路径用到json?​​
  • ​​为什么存储图片路径不能用varchar?​​
  • ​​param json not null COMMENT "参数",为什么要用这个。是什么意思?​​
  • ​​为什么要用到索引呢?​​
  • ​​category_id int unsigned not null COMMENT "分类ID",​​
  • ​​brand_id int unsigned COMMENT "品牌ID",​​
  • ​​spg_id int unsigned not null COMMENT "品类id",​​

解析sku字段

举个例子:
sku商品表
是不是得有id自增代表不用手动创建是吧
spu_id是不是的有。因为你这样商品是哪一个产品下的是吧。比如小米手机产品。商品是各种类型颜色。。。。的小米手机十八
商品标题是不是的有。因为介绍这个商品呀
images是不是应该一般的有。因为图片能勾起人人们的购买欲,.
price是不是的有。不说比如要买这个手机多少钱的吗是吧
param是不是的有。各种颜色类型什么的呀
是否上架是否有效是不是也得有。
添加修改时间是不是也得有.

解析sku类型大小

unsigned代表从0或者整数.AUTO_INCREMENT代表数据递增. PRIMARY key代表主键用于唯一地标识表中的每一条记录,可以定义一列或多列为主键。
只要是int unsigned如果不加AUTO_INCREMENT代表从0开始,否则1开始.
title这些都是varchar类型(大小的看具体情况而定)

images json comment “商品图片”,

为什么图片字段为json。因为这个很多个图片呀。详细看sql数据
截图就看到啦.
price用decimal类型。为什么不用floatdouble。因为不精确,
decimal详解:
在mysql中,价格用“DECIMAL”类型。Decimal是专门为财务相关问题设计的数据类型,它实际上是以字符串的形式存放的,可在定义时划定整数部分以及小数部分的位数;在对精度要求比较高时(如货币、科学数据),用DECIMAL类型比较好。

param json not null COMMENT “参数”,

为什么用json。因为定义很多个参数呀。以json方式存放.

boolean是啥?

是tinyint(1)

timestamp 详解:

前言:时间戳(timestamp),一个能表示一份数据在某个特定时间之前已经存在的、 完整的、 可验证的数据,通常是一个字符序列,唯一地标识某一刻的时间。使用数字签名技术产生的数据, 签名的对象包括了原始文件信息、 签名参数、 签名时间等信息。广泛的运用在知识产权保护、 合同签字、 金融帐务、 电子报价投标、 股票交易等方面。

为什么定义索引?

因为运行速度快一点.

sql

sku商品表

CREATE table t_sku(
id int unsigned PRIMARY key AUTO_INCREMENT COMMENT "主键",
spu_id int unsigned not null COMMENT "产品id",
title varchar(200) not null COMMENT "商品标题",
images json comment "商品图片",
price decimal(10,2) unsigned not null COMMENT "价格",
param json not null COMMENT "参数",
saleable boolean not null COMMENT "是否上架",
valid boolean not null COMMENT "是否有效",
create_time timestamp not null default now() COMMENT "添加时间",
last_update_time timestamp not null default now() COMMENT "最后修改时间",
INDEX idx_spu_id(spu_id),
INDEX idx_saleable(saleable),
INDEX idx_valid(valid)
) COMMENT="商品表";

新零售系统mysql设计(产品spu 商品sku)表 二次修改_零售

举个例子:
是不是得有id自增代表不用手动创建是吧
title是不是的有。介绍这款产品呀
是不是有需要的时候的增加副标题
分类id品牌id品类id是不是的有?
因为因为这个产品是手机是不是是一个分类。是哪一个品牌的产品。哪一个品类的产品是吧
是否上架是否有效是不是也得有。
添加修改时间是不是也得有.

spu产品表

CREATE TABLE t_spu(
id int unsigned PRIMARY key AUTO_INCREMENT COMMENT "主键",
title varchar(200) NOT null COMMENT "标题",
sub_title varchar(200) comment "副标题",
category_id int unsigned not null COMMENT "分类ID",
brand_id int unsigned COMMENT "品牌ID",
spg_id int unsigned not null COMMENT "品类id",
saleable boolean not null COMMENT "是否上架",
valid boolean not null COMMENT "是否有效",
create_time timestamp not null default now() COMMENT "添加时间",
last_update_time timestamp not null default now() COMMENT "最后修改时间",
INDEX idx_brand_id(brand_id),
INDEX idx_category_id(category_id),
INDEX idx_spg_id(spg_id),
INDEX idx_saleable(saleable),
INDEX idx_valid(valid)
) COMMENT="产品表";

解析字段:

你说啊。一个产品表需要具备啥呢?
如果要介绍这个产品的话,是不是需要标题 副标题。
产品是否上架下架 产品是否有库存(有效).
那产品表需要关联什么表呢?
这个产品的品牌是啥?(品牌表)
产品是什么类型的,手机家电什么的。(品类表)
这个产品的类型是什么呢?(分类表)手机、数码什么的

产品表数据:

新零售系统mysql设计(产品spu 商品sku)表 二次修改_数据库_02

产品表spu与商品表的关系:

一个产品有多个商品。
举个例子:比如我知道华为手机这个产品非常不错。我想买。我就买了.其他人也买了。是不是这个意思。有一个产品,被很多人买。

mysql表设计需要注意的地方:

价格:需要用到decimal这个类型。

我写的decimal(10,2)是什么意思呢?
表示总共能存 10 位数字,其中末尾 2 位是小数,字段最大存储值 99999999.99

images json comment “商品图片”,为什么存图片路径用到json?

json 类型的存储和 longText 类似。能够存储非常多的数据

为什么存储图片路径不能用varchar?

image在数据库中是以二进制存储的,所以varchar肯定不行.因为json主要用来存储东西的。能够存储很大空间.

param json not null COMMENT “参数”,为什么要用这个。是什么意思?

代表某个商品的参数。比如小米手机中的颜色。型号 什么的。

为什么要用到索引呢?

1, 加快查询速度,提高系统的性能,这也是创建索引的最主要的原因。
2,通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。

索引的坏处
创建索引和维护索引要耗费时间,这种时间随着数据 量的增加而增加。

category_id int unsigned not null COMMENT “分类ID”,

你把他看成手机就行

新零售系统mysql设计(产品spu 商品sku)表 二次修改_json_03


看id这个字段代表category_id

brand_id int unsigned COMMENT “品牌ID”,

把这个字段看成某个手机品牌就行.

新零售系统mysql设计(产品spu 商品sku)表 二次修改_零售_04


brand_id代表上图的id字段

spg_id int unsigned not null COMMENT “品类id”,

把他看成手机就行.

新零售系统mysql设计(产品spu 商品sku)表 二次修改_json_05


spg_id是上图的spg_id字段