作者:陈业贵 华为云享专家 51cto(专家博主 明日之星 TOP红人) 阿里云专家博主
前言(购物券的特点):
购物券有使用期限。而且一个订单只能使用一张购物券.
购物券是需要领取的。是程序员设计的一个功能。领取购物券后达到某种金额才能使用购物券.
购物券与客户之间的关系?
一对多的关系。一个客户可以领取很多的购物券
用几张表呢?做购物券功能?
两张。那些用户领取了购物券一张表。购物券一张表.
购物券一般有几个字段呢?
id 购物券金额deno (也就是说可以抵多少钱) 超过多少金额才能使用购物券condition
使用购物券的开始时间start_date 购物券的过期时间end_date 该购物券最多发放多少张max_num
购物券+客户关联购物券数据表的关系:
在客户表id1的客户,领取了3张购物券表中id1的购物券。又领取了id==2的购物券两张.
sql(购物券表)
举个例子;购物券是不是的有开始时间过期时间,是不是满多少钱才能使用。是不是要有可以抵用多少钱。是不是还得看平台发多少张.
create TABLE t_voucher(
id int unsigned PRIMARY KEY AUTO_INCREMENT COMMENT "主键",
deno decimal(10,2) unsigned not null COMMENT "面值",
`condition` decimal(10,2) unsigned not null COMMENT "订单满多少钱可以使用",
start_date DATE COMMENT "起始日期",
end_date DATE COMMENT "截止日期",
max_num int COMMENT "代金券发放最大数量"
) COMMENT="购物券表";
解析 购物券表类型:
deno `condition凡是钱有关的都用decimal. 而且还是unsigned。毕竟没有钱是0或者负数的吧。对吧.
start_date的话,购物券上面的都是这种格式的啦年-月-日什么的啦.
购物券数量的话,都是int整型。毕竟没有人会发5.5张购物券对吧
sql:客户关联购物券数据表
…意思就是客户领取的购物券的记录
CREATE TABLE t_voucher_customer(
id int unsigned PRIMARY KEY AUTO_INCREMENT COMMENT "主键",
voucher_id int unsigned not null COMMENT "购物券id",
customer_id int unsigned not null COMMENT "客户id"
) COMMENT="客户关联购物券数据表";
解析类型:
凡是_id的话,都是int unsigned我理解的.因为这个是关联的。一般关联的是某张表的id,而id一般是从0开始计算的啦
为什么not null?
因为关联必须有数据才能关联啊。比如客户关联购物券数据表这张表,关联别的表的id是不是都是有数据的呢?没数据怎么关联呢?对吧.
注意:价格的有decimal类型,
购物券中日期用date类型
用类型的秘诀是:
根据现实生活的情况来运用.