社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
签到表(用户ID, 最近签到日期, 连续签到天数)
UPDATE
签到表
SET
连续签到天数 =
CASE WHEN 最近签到日期 = Today - 1 THEN (连续签到天数 + 1) MOD 7
ELSE 0 END
WHERE
用户ID = 用户ID;
UPDATE 签到表 SET 最近签到日期 = Today;
1,连续签到
用户点击签到记录一次CheckTimes_YYMMDD
记录CheckTimes_Last_YYMMDD
然后记录一次 CheckLog
用户进行签到行为的时候:
对比CheckTimes以及CheckTimes_Last
当YYMMDD_Last - YYMMDD 中 YYMM相同 且 DD=0 :请勿重复签到
当YYMMDD_Last - YYMMDD 中 YYMM相同 且 DD=1 :CheckLog+1
当YYMMDD_Last - YYMMDD 中 YYMM相同 且 DD>1 :CheckLOG=0
用来记录连续签到的次数。
2,单位时间可重复操作限制
同理可进行使用的地方是用户单位时间内可执行操作次数限制。
用户执行动作时进行记录:CheckTimes_STAR_YYMMDD
用户执行后续执行动作操作:CheckTimes_YYMMDD
记录CheckLog
用户每次执行操作的时候,进行对比CheckTime_STAR。
既:用户在20150601141430 执行操作记录为 STAR;
1) 第二次执行时间为 20150601141630, CheckLog=2
2)第三次执行时间为 20150601141730,CheckLog=3
3)CheckLog 大于预设值,反馈您的操作过于频繁。
4)第四次执行时间为 20150616000,大于操作间隔。
5)重置CheckStar=2015071600,CheckLog=1
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!