接上一篇,整个一元夺宝中主要分为商品(后台、前台)、夺宝订单、夺宝期、开奖4大模块,如下图:
一、商品模块
对于商品这块区分前台与后台的理由是:
A、后台主要是管理商品的基本属性参数,例如ID、名称、所属名牌品类,颜色尺码SKU等,当然这里是分主子表。
B、 前台在后台的数据基础上记录一些扩展行为参数,例如设定该商品进行到多少期就停止夺宝、总共需要多少人次参与、基本夺宝人次单位等。
这样做的好处就是严格区分本身基本属性与后续扩展的行为熟悉,互不干扰但存在关联关系。
二、夺宝期模块
在这个里面细分为夺宝期主要信息,当前期夺宝参与明细记录,以及夺宝号码配置。
A、夺宝期里面会记录什么商品参与夺宝、进行到多少期、总共需要多少人参与、当前参与了多少人次、当期中奖用户,开奖号码等。
B、 当前期夺宝明细记录主要是这一期什么产品被什么人夺宝,且夺宝号码、夺宝的时间是多少。其有一个显著特征就是记录条数会与该商品总参与人次数相等。
C、 存在夺宝号码配置这样的信息主要是为了在开奖之后初始化下一期夺宝用到。比喻说某商品总需要参与人次数是100,那么就会从号码配置记录中取出从1到100共100个号码写入到夺宝明细记录中去。
三、夺宝订单模块
这里的订单处理其实与我们脑海中的订单概念一样,也是分为订单主信息,订单所包含明细商品信息。
A、订单主信息中主要记录参与人、付款多少钱、什么方式付款、订单状态等关键信息。
B、 订单明细表中唯一不同之处就是会记录到某人对该商品夺宝之后,系统分配给他的夺宝号码集合。
四、开奖模块
因为是无人值守的,所以开奖必须用定时任务来完成。开奖之后需要给用户微信发消息告知此处夺宝是否中奖,中奖用户需要填写奖品邮寄出去的地址信息,用户收到奖品之后还可能会晒单等。
根据上面对图的分析,其实就可以马上将数据库表结构给建出来。大致列一下有如下表:
A、后台商品主表
B、 后台商品明细表
C、 前台商品主表
D、前台商品图片表
E、 夺宝期主表
F、 夺宝期明细表(永远只记录当前期)
G、夺宝号码配置表
H、夺宝订单主表
I、 夺宝订单明细表
J、 夺宝购物车表
K、开奖任务记录表
L、 开奖计算结果详细表
M、 开奖收货地址表
N、开奖微信通知记录表