作者:陈业贵 华为云享专家 51cto(专家博主 明日之星 TOP红人) 阿里云专家博主
文章目录
sql
仓库表
CREATE TABLE t_warehouse(
id int unsigned PRIMARY KEY AUTO_INCREMENT COMMENT "主键",
city_id int unsigned not null COMMENT "城市id",
address varchar(200) not null COMMENT "地址",
tel varchar(20) not null COMMENT "电话",
INDEX idx_city_id(city_id)
) COMMENT="仓库表";
解析字段
你看啊。一个仓库表是吧。是不是得有名字name啊。是不是得有具体位置啊address。电话也得有吧。不然拿什么联系仓库啊.
是不是得知道这个仓库是那个城市的啊city_id。然后城市表是那个城市是那个省份的啊
解析类型(大小)
int unsigned代表从0开始算起,但是但是加自增后AUTO_INCREMENT就代表从1开始计算了.not null的看具体情况定.
在这里都是需要有的啦.
数据
仓库商品库存表
CREATE table t_warehouse_sku(
warehouse_id int unsigned COMMENT "仓库id",
sku_id int unsigned COMMENT "商品id",
num int unsigned not null COMMENT "库存数量",
unit varchar(20) not null COMMENT "库存单位",
PRIMARY key (warehouse_id,sku_id)
) COMMENT="仓库商品库存表";
解析字段:
你看啊,仓库商品库存表是不是有仓库 商品表啊。这两个表是不是已经建立好了,关联就行了对吧.
然后库存的话啊。是不是得有数量 单位啊.
PRIMARY key (warehouse_id,sku_id)
意思是怕重复的数。复合主键这种概率大大减少了
在一个主键不能唯一标识这个表中的记录的时候才使用复合主键
解析类型(大小)
int unsigned 是从0开始的啦
数据
新零售表
CREATE TABLE t_shop(
id int unsigned PRIMARY KEY AUTO_INCREMENT COMMENT "主键",
city_id int unsigned not null COMMENT "城市id",
address varchar(200) not null COMMENT "地址",
tel varchar(20) not null COMMENT "电话",
INDEX idx_city_id(city_id)
) COMMENT="新零售表";
解析字段
你看啊。一个零售店具体在那个城市建立是不是得知道啊。零售店的地址是啥。得知道吧。电话也得有吧。
解析类型(大小)
字符串的一般用varchar,大小得视情况定.
comment是注释哦
数据
零售店商品库存表
CREATE table t_shop_sku(
shop_id int unsigned COMMENT "仓库id",
sku_id int unsigned COMMENT "商品id",
num int unsigned not null COMMENT "库存数量",
unit varchar(20) not null COMMENT "库存单位",
PRIMARY key (shop_id,sku_id)
) COMMENT="零售店商品库存表";
解析字段:
零售店商品库存表,你看啊。零售表+商品表是不是已经建立了,关联就行了啦.
库存的话,得有数量 单位哦
解析类型大小
int unsigned代表从0开始
PRIMARY key (shop_id,sku_id)
意思是怕重复的数。复合主键这种概率大大减少了
在一个主键不能唯一标识这个表中的记录的时候才使用复合主键
数据
仓库表(解析)
id int unsigned PRIMARY KEY AUTO_INCREMENT COMMENT “主键”,为什么要用这个字段
第一:id要自增(AUTO_INCREMENT),作用是什么呢?
1)增加记录时,可以不用指定id字段,不用担心主键重复问题。
2)数据库自动编号,速度快,而且是增量增长,按顺序存放,对于检索非常有利;
3)数字型,占用索引空间小,范围查找与排序友好,在程序中传递也方便;
为什么要设置主键,主键作用是什么?
主键是能确定一条记录的唯一标识,主键字段必须唯一,必须非空,一个表中只能有一个主键,主键可以包含一个或多个字段。
打个比方,一条记录包括身份正号,姓名,年龄,学校,国籍,性别等。身份证号是唯一能确定你这个人的,其他都可能有重复,所以,身份证号是主键。
设置主键的作用是唯一性。非空的。说明了自增的id不会重复的。
comment是什么?
代表一种注释。别人看懂这是什么字段或者表或者数据库
为什么要用int unsigned类型呢?
因为id是不是整数的。用unsigned是因为某种商品的数量是不是不能是负数呢.UNSIGNED的范围类型就是0~255
city_id int unsigned not null COMMENT “城市id”,
仓库表是不是要说明在哪一个城市中的仓库呢?对吧。不能为空的对吧。毕竟仓库是在哪一个城市的对吧.
address varchar(200) not null COMMENT “地址”,tel varchar(20) not null COMMENT “电话”,INDEX idx_city_id(city_id)
你想啊。仓库是不是的有电话啊。不然怎么联系呢对吧。仓库是不是的有地址呀。索引INDEX的话,搜索的话,是不是得搜索某个城市呀。才能搜索到仓库呀.
仓库商品库存表(解析)
CREATE table t_warehouse_sku(
warehouse_id int unsigned COMMENT "仓库id",
sku_id int unsigned COMMENT "商品id",
num int unsigned not null COMMENT "库存数量",
unit varchar(20) not null COMMENT "库存单位",
PRIMARY key (warehouse_id,sku_id)
) COMMENT="仓库商品库存表";
你说这个表( 仓库商品库存表)是一张关联表对吧。所以是不是得有warehouse_id :仓库id呢?是不是得有 sku_id商品id呢。而库存里面不是的有物品的数量 这个物品的单位比如克 之类的呢对象.
新零售表(解析)
CREATE TABLE t_shop(
id int unsigned PRIMARY KEY AUTO_INCREMENT COMMENT "主键",
city_id int unsigned not null COMMENT "城市id",
address varchar(200) not null COMMENT "地址",
tel varchar(20) not null COMMENT "电话",
INDEX idx_city_id(city_id)
) COMMENT="新零售表";
你说对吧。零售店是不是有数量的所以的有id对吧。拿零售店在哪一个城市呢。也有要对吧。零售店难道没有地址的吗当然要有对吧。电话没有的吗?那不可能对吧…index索引的话,搜索是不是的搜索哪一个城市中的零售店呢对吧
零售店商品库存表(解析)
CREATE table t_shop_sku(
shop_id int unsigned COMMENT "仓库id",
sku_id int unsigned COMMENT "商品id",
num int unsigned not null COMMENT "库存数量",
unit varchar(20) not null COMMENT "库存单位",
PRIMARY key (shop_id,sku_id)
) COMMENT="零售店商品库存表";
你说这张表(零售店商品库存表)是一张关联表。所以的有零售店的id。也有要商品的id。库存的数量 单位也要有.
整段的意思代表个仓库里面有商品数量是几个 单位是什么.
PRIMARY key (shop_id,sku_id)的意思是什么?
代表一种商品不会在同一个仓库中出现两次.