作者:陈业贵 华为云享专家 51cto(专家博主 明日之星 TOP红人) 阿里云专家博主
CREATE TABLE t_level(
id int unsigned PRIMARY KEY AUTO_INCREMENT COMMENT "主键",
`level` varchar(200) not null COMMENT "等级",
discount DECIMAL(10,2) unsigned not null COMMENT "折扣"
) COMMENT="会员等级表";
CREATE table t_customer(
id int unsigned PRIMARY KEY AUTO_INCREMENT COMMENT "主键",
username varchar(200) not null COMMENT "用户名",
`password` varchar(2000) not null COMMENT "密码(AES加密)",
wechat varchar(200) COMMENT "微信号",
tel char(11) COMMENT "手机号",
level_id int unsigned COMMENT "会员等级",
create_time timestamp not null DEFAULT now() COMMENT "添加时间",
last_update_time timestamp not null DEFAULT now() COMMENT "最后修改时间",
INDEX idx_username(username),
UNIQUE unq_username(username)
) COMMENT="客户表";
CREATE TABLE t_customer_address(
id int unsigned PRIMARY KEY AUTO_INCREMENT COMMENT "主键",
customer_id int unsigned not null COMMENT "客户id",
`name` varchar(200) not null COMMENT "收货人姓名",
tel char(11) not null COMMENT "收货人电话",
address varchar(200) not null COMMENT "收货地址",
prime boolean not null COMMENT "是否为缺省收货地址",
INDEX idx_customer_id(customer_id)
) COMMENT="收获地址表";
CREATE TABLE t_level(
id int unsigned PRIMARY KEY AUTO_INCREMENT COMMENT "主键",
`level` varchar(200) not null COMMENT "等级",
discount DECIMAL(10,2) unsigned not null COMMENT "折扣"
) COMMENT="会员等级表";
第一:id要自增(AUTO_INCREMENT),作用是什么呢?
1)增加记录时,可以不用指定id字段,不用担心主键重复问题。 2)数据库自动编号,速度快,而且是增量增长,按顺序存放,对于检索非常有利; 3)数字型,占用索引空间小,范围查找与排序友好,在程序中传递也方便; 为什么要设置主键,主键作用是什么?
主键是能确定一条记录的唯一标识,主键字段必须唯一,必须非空,一个表中只能有一个主键,主键可以包含一个或多个字段。
打个比方,一条记录包括身份正号,姓名,年龄,学校,国籍,性别等。身份证号是唯一能确定你这个人的,其他都可能有重复,所以,身份证号是主键。 设置主键的作用是唯一性。非空的。说明了自增的id不会重复的。 comment是什么?
代表一种注释。别人看懂这是什么字段或者表或者数据库 为什么要用int unsigned类型呢? 因为id是不是整数的。用unsigned是因为某种商品的数量是不是不能是负数呢.UNSIGNED的范围类型就是0~255
level
varchar(200) not null COMMENT “等级”,解释:等级的名字,比如黄金会员 白金会员等等…
某个会员等级所能享受到的折扣
CREATE table t_customer(
id int unsigned PRIMARY KEY AUTO_INCREMENT COMMENT "主键",
username varchar(200) not null COMMENT "用户名",
`password` varchar(2000) not null COMMENT "密码(AES加密)",
wechat varchar(200) COMMENT "微信号",
tel char(11) COMMENT "手机号",
level_id int unsigned COMMENT "会员等级",
create_time timestamp not null DEFAULT now() COMMENT "添加时间",
last_update_time timestamp not null DEFAULT now() COMMENT "最后修改时间",
INDEX idx_username(username),
UNIQUE unq_username(username)
) COMMENT="客户表";
比如这个新零售系统。是不是的有用户名+密码是吧。微信号 电话要是能有也要有对吧。level_id代表这个客户所代表的等级。当然可能不是会员,所以不用not null。 create_time成为客户的时间,last_update_time修改等级的时间对吧.
CREATE TABLE t_customer_address(
id int unsigned PRIMARY KEY AUTO_INCREMENT COMMENT "主键",
customer_id int unsigned not null COMMENT "客户id",
`name` varchar(200) not null COMMENT "收货人姓名",
tel char(11) not null COMMENT "收货人电话",
address varchar(200) not null COMMENT "收货地址",
prime boolean not null COMMENT "是否为缺省收货地址",
INDEX idx_customer_id(customer_id)
) COMMENT="收获地址表";
收货地址表。是不是得是某一个客户的搜索地址呢?所以得关联 customer_id(关联客户表中的id字段) name teladdress 这些是不是也是必须要有,不然送去哪谁接收呢对吧
解释是必须是某一个客户的收货地址哦.所以得增加索引。快一点.