电商业务中复杂积分体系设计

需求描述:

最近系统中开发了一个复杂的积分管理业务逻辑,觉得十分有趣,逻辑上十分复杂,
但又十分严谨。分享给各位开发小伙伴,你们是否有遇到过这样的需求。
积分来自后台赠送积分、会员卡充值、下单赠送积分、参与活动赠送积分,积分可以用来消费,下单时积分可以参与支付,下单时扣减积分,取消订单返还积分,完成订单赠送积分。
在电商业务场景中将基本业务逻辑梳理如下:
1.一个机构包含多个店铺
2.一个机构包含多个会员中心
3.一个店铺只能有一个会员卡中心
4.一个会员卡中心可以同时绑定多个店铺
5.一个会员卡只能属于一个会员中心
6.一个手机号可以有多个会员卡
7.一个机构可以有多个会员
8.一个会员在现实中可以有多个手机号
9.一个会员在系统中只允许绑定一个手机号
10.会员可以修改手机号
11.一个会员可以有多张会员卡
12.一张会员卡可以有若干积分,积分可以用来消费

业务逻辑图

在这里插入图片描述

数据库设计思路

实际上从业务的角度分析,我们主要从会员与会员卡的关系以及会员卡的积分使用出发。业务上设计会员作为一个逻辑实体,具备全局唯一性,手机号可以归属于会员表的一个字段,该字段也是全局唯一。于是我们不难设计出底层的数据库表结构。
会员表:
uId 会员ID,
uname 会员名,
phone 手机号,

会员卡在业务上与会员是多对一的关系,关系建立的线索是会员卡与手机号的绑定关系。而会员卡作为载体有积分属性,所以表结构设计大致应当如下:
会员卡中心表:
ccid 会员卡中心ID,
ccname 会员卡中心名称,

会员卡表:
cid 会员卡id,
points 积分,

会员卡与手机绑定表:
id 主键,
cid 会员卡ID,
phone 会员手机号,

会员卡与会员卡中心绑定表:
id 主键
cid 会员卡ID,
ccid 会员卡中心ID

会员卡的使用是有范围的,不同会员卡中心的会员卡不能跨会员卡中心使用。而会员卡中心与店铺又有绑定关系,一个店只能属于一个会员卡中心。这样属于同一个会员卡中心的多个店之间可以共享会员卡积分。
店铺表:
shopId 店铺ID,
shopName 店铺名,

会员卡中心与店铺关系表:
id 主键,
ccid 会员卡中心ID,
shopId 店铺ID

功能设计思路

功能上首先考虑后台管理功能的实现,其次是Web端用户功能页面。后台包含一系列的增删改查CRUD操作,积分的充值,赠送等。用户端主要是会员卡的领取和使用。使用会员卡一般是参与下单支付,进行积分扣减操作,积分的增加操作可以设计一些活动送积分,浏览送积分,签到送积分等等。

具体的内容就不一一展开了,这里主要介绍类似的业务场景应当如何思考和设计。这里主要是思路的拓展。

猜你喜欢

转载自blog.csdn.net/yanghui555/article/details/114891696