积分系统的设计

简介

积分系统的作用往往是为了留住用户、获取收益等,还经常与会员成长体系挂钩。“积分是一个对用户行为可感知、可量化的奖励”[1],一个好的积分系统能够为整个系统带来最大的效益。

积分系统的基本功能主要有:发放和消耗积分、回退和回收积分、查询积分记录等。

积分的应用场景主要有:购买商品、作为优惠券、作为虚拟货币、用于点赞刷榜、用于提交入场费、充值得积分、签到领积分、积分换礼品等等。

需求

整个积分系统主要的需求就是发放与消耗积分、查询积分记录。针对本系统,特意添加活动,活动可设置积分门槛和积分奖励,用例图如下。

用例图

我们考虑积分可以有多种,比如“硬币”(用于打赏)、“火腿”(用于参加活动)、“贝壳”(用于升级积分上限)等等,还考虑每个用户有一定的积分上限,即用户的“钱袋子”应该是有限的(目的是增加积分之间的流动与积分的使用、促使用户升级、增大用户黏性等),本系统的用户获取到的积分即是永久有效不考虑过期与否。

设计

一个好的积分系统,需要有良好的用户体验,需要有灵活性和可扩展性。在实际的设计中,主要考虑后端接口设计,采用面向业务的接口设计,一个接口可供多个不同的业务调用。

术语定义

术语 英文 定义
积分 point 用户奖励的抽象,具体可以是“硬币”、“火腿”等。
活动 acitivity 指网站举办的某个活动,例如读书比赛、主题比赛、签到活动等。主要是门槛与奖励的定义,例如截止时间、总发放量、单用户总领取量、日发放量、单用户日领取量、指定角色领取等。

数据库设计

point 表

积分表

user_point 表

user_point 表

activity 表

活动表

user_point_record 表

用户积分领取与消耗记录表

接口流程

发放、消耗积分的活动图


[1] 如何从0到1设计积分系统?

updatedupdated2020-07-122020-07-12
加载评论