关于积分的系统设计

需求是这样的:后台可以设置一系列的积分规则,比如用户注册在这段时间内送200积分,过段时间只送100积分,再过段时间可能就不送积分了,然后针对用户下单购买,也送一定的积分,想请教这样一个需求,从数据库设计到系统实现,分别该怎么设计呢?
我目前想的是:
1)数据库设计:数据库表包含:id,方法名,积分规则这三个字段,id是主键唯一标示,方法名是我拦截规则对应的标示,积分规则里面存放的是json格式数据,因为针对注册和下单的积分规则不一样,将不同的规则json格式化后存储,然后在不同的逻辑中解析判断;
2)系统实现:系统使用的是springmvc+mybatis,使用spring的aop对service进行拦截,根据拦截的service方法名取对应的规则解析,给予一定的积分

这里面还涉及到一个问题,针对积分规则的设置,我是单独放到了一个系统A中,而前台用户注册,购买等是在另外一个系统B中,为了提高效率,我可能会把积分规则放到缓存中,那这样的话,A中修改了积分规则,B中就要及时更新缓存中的数据,A、B通过接口进行交互?亦或者有没有更好的解决方案?

猜你喜欢

转载自yax.iteye.com/blog/2253181
今日推荐