需求描述:
实际业务中一个复杂的积分设计案例。
积分来自后台赠送积分、会员卡充值、下单赠送积分、参与活动赠送积分,积分可以用来消费,下单时积分可以参与支付,下单时扣减积分,取消订单返还积分,完成订单赠送积分。
在电商业务场景中将基本业务逻辑梳理如下:
1.一个机构包含多个店铺
2.一个机构包含多个会员中心
3.一个店铺只能有一个会员卡中心
4.一个会员卡中心可以同时绑定多个店铺
5.一个会员卡只能属于一个会员中心
6.一个手机号可以有多个会员卡
7.一个机构可以有多个会员
8.一个会员在现实中可以有多个手机号
9.一个会员在系统中只允许绑定一个手机号
10.会员可以修改手机号
11.一个会员可以有多张会员卡
12.一张会员卡可以有若干积分,积分可以用来消费
业务逻辑图
数据库设计思路
实际上从业务的角度分析,我们主要从会员与会员卡的关系以及会员卡的积分使用出发。业务上设计会员作为一个逻辑实体,具备全局唯一性,手机号可以归属于会员表的一个字段,该字段也是全局唯一。于是我们不难设计出底层的数据库表结构。
会员表:
uId 会员ID,
uname 会员名,
phone 手机号,
…
会员卡在业务上与会员是多对一的关系,关系建立的线索是会员卡与手机号的绑定关系。而会员卡作为载体有积分属性,所