在电商中,我们总会遇到用户余额/积分和库存的问题,总是怕会出现用户余额/积分用超或商品超卖的情况。这次就来了解一下怎么设计用户余额/积分,怎么来处理库存问题。
一、用户余额/积分设计
1、概述
对于用户余额/积分,一方面我们需要知道用户的总积分有多少(这部分是可用积分),另一方面我还还需要知道用户的积分变动记录(积分的增加和减少)。
同时,在电商中,关于积分的操作不仅仅都是同步的,也就是我们可以直接增加或扣减积分,为了提升服务的性能,如果积分的操作存在异步的情况,那么我们就不能直接进行增加或扣减积分了,这种情况下,我们可以引入积分冻结的概念,暂缓对积分的处理。
另外,如果用户的积分变动较为集中,即存在单位时间内增加和扣减同时出现的情况,那么我们还需要引入分布式锁对用户积分进行保护,避免多个线程同时操作用户积分,造成积分异常。
2、积分表的设计
用户积分表的设计,我们重点需要关注一下三个字段:
字段1 | 字段2 | 字段3 |
---|---|---|
用户标识 | 总积分 | 可用积分 |
我们需要注意一下总积分和可用积分的区别,一般情况下总积分和可用积分总是相同的,但当需要积分冻结时,我们操作冻结的是用户的可用积分,此时用户的总积分和可用积分就是不相同的。我们也可以通过两者是否相同来判断是否存在冻结中的积分<