points_record (积分表)
user_id (用户ID)
point (点数)
used (已使用了多少)
expire (截止日期)
每获得一次积分就在这个表里添加一条记录
消费积分时,就更新 used 的值
获得积分(这个是伪代码):
INSERT user_id=id, point=point, used=0, expire=now() + 30 days
使用积分:
1. 先取得所有可用积分,并按截止日期排序:
SELECT user_id=id, expire > now(), point > used ORDER_BY expire
2. 计算 sum( point - used ) 看可用积分够不够
3. 如果可用积分是够的,就依次更新各条记录中的 used 的值,直到把要使用的积分扣够
每获得一次积分就在这个表里添加一条记录
消费积分时,就更新 used 的值
获得积分(这个是伪代码):
INSERT user_id=id, point=point, used=0, expire=now() + 30 days
使用积分:
1. 先取得所有可用积分,并按截止日期排序:
SELECT user_id=id, expire > now(), point > used ORDER_BY expire
2. 计算 sum( point - used ) 看可用积分够不够
3. 如果可用积分是够的,就依次更新各条记录中的 used 的值,直到把要使用的积分扣够