作者:陈业贵 华为云享专家 51cto(专家博主 明日之星 TOP红人) 阿里云专家博主
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="仓库表";
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="仓库商品库存表";
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="新零售表";
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要自增(AUTO_INCREMENT),作用是什么呢?
1)增加记录时,可以不用指定id字段,不用担心主键重复问题。 2)数据库自动编号,速度快,而且是增量增长,按顺序存放,对于检索非常有利; 3)数字型,占用索引空间小,范围查找与排序友好,在程序中传递也方便; 为什么要设置主键,主键作用是什么?
主键是能确定一条记录的唯一标识,主键字段必须唯一,必须非空,一个表中只能有一个主键,主键可以包含一个或多个字段。
打个比方,一条记录包括身份正号,姓名,年龄,学校,国籍,性别等。身份证号是唯一能确定你这个人的,其他都可能有重复,所以,身份证号是主键。 设置主键的作用是唯一性。非空的。说明了自增的id不会重复的。 comment是什么?
代表一种注释。别人看懂这是什么字段或者表或者数据库 为什么要用int unsigned类型呢? 因为id是不是整数的。用unsigned是因为某种商品的数量是不是不能是负数呢.UNSIGNED的范围类型就是0~255
仓库表是不是要说明在哪一个城市中的仓库呢?对吧。不能为空的对吧。毕竟仓库是在哪一个城市的对吧.
你想啊。仓库是不是的有电话啊。不然怎么联系呢对吧。仓库是不是的有地址呀。索引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。库存的数量 单位也要有. 整段的意思代表个仓库里面有商品数量是几个 单位是什么.
代表一种商品不会在同一个仓库中出现两次.