花的时候控制一下,从最早的扣起

解决方案 »

  1.   

    当前积分减去近3个月获得的积分,如果大于0,将超出部分扣除即可
      

  2.   

    兑换积分默认从时间最早的开始,然后每天计算两个时间之间差,如果时间相差快到三个月,就提醒用户,即将到期,如果离三个月相差时间很多,就不需要提醒,时间差计算,找个现成的算法,在积分中可以添加一个字段,字段为可用和不可用,这样从数据库取值比较好
      

  3.   

    我是这么想,但是这意味着用户操作的时候需要频分读写数据库。
    想看看还有没有简单的办法。
      

  4.   

    貌似逻辑很简单。问题是用户量比较大,而且过期的时间可能是3个月也可能是1年,每天都要遍历一次所有的数据,时间太长。
    请问还有没有简单的办法。
      

  5.   

    不好意思,我没明白什么意思。
    能不能再解释清楚一些。
      

  6.   

    不太明白, 尽然已经花掉了, 那为什么还要设置过期那~???
      

  7.   


    已经花掉的就不用过期了。
      

  8.   

    建议换一个思路来实现,以自然月来做计算周期。6月1号的,最多可以到10月1过期,但6月31号的,也是10月1号过程 。你可以用4个字段来计积分,分别对应于1,2,3,4//5, 6,7,8//9,10,11,12月,这样子,你做起来就简单了。每个月月初的时候,找到相应的月份,把积份清零。总积分等于四个月积份的总和。
      

  9.   


    已经花掉的就不用过期了。
    积分单独相加, 每次获得的金币和日期每次做一个记录, 只做显示用, 当前日期 - 记录日期 > 设定天数的时候总积分减去记录日期所记录的金币.总积分 = 每次获得积分 - 消费积分没什么矛盾的嘛.
      

  10.   

    貌似逻辑很简单。问题是用户量比较大,而且过期的时间可能是3个月也可能是1年,每天都要遍历一次所有的数据,时间太长。
    请问还有没有简单的办法。
    2#的方法基础上优化,利用前一天的汇总结果,进行计算的汇总
    首次执行时,获取近3个月获取积分的总和,进行当天的处理,同时将汇总结果进行存储
    之后每次执行,取出前一天的数据,加上今天获取积分,减去3个月前最后一天的积分,即为近3个月积分,进行当天处理并存储
      

  11.   

    你所描述的积分是有实际价值的,所以遵从安全第一原则,用到积分的地方请务必实时计算。
    计算方面可以直接给数据库,视图过程触发器,快速切安全。
      

  12.   

    貌似逻辑很简单。问题是用户量比较大,而且过期的时间可能是3个月也可能是1年,每天都要遍历一次所有的数据,时间太长。
    请问还有没有简单的办法。
    2#的方法基础上优化,利用前一天的汇总结果,进行计算的汇总
    首次执行时,获取近3个月获取积分的总和,进行当天的处理,同时将汇总结果进行存储
    之后每次执行,取出前一天的数据,加上今天获取积分,减去3个月前最后一天的积分,即为近3个月积分,进行当天处理并存储
    先直接计算了,等以后遇到性能问题再来优化。
    谢谢了。
      

  13.   

    不好意思,我没明白什么意思。
    能不能再解释清楚一些。
    在积分表中添加一个字段,可用和不可用,每次提取分数的时候只提取可用的,然后计算可用积分中最早的时间到现在的时间差