TP3.2.3 + MYSQL 关于签到功能设计的问题

目前两张表:(主表每个用户一条记录,副表每次签到都会添加一条)


主表:id(自增) | uid(用户id) | days(签到总次数) | con_days(连续签到次数) | sign_time(最后签到时间)
days:每次签到都+1。
con_days:根据 sign_time 字段来判断昨天是否已签到,签到了就+1,否则就保存为 1。

副表:id(自增) | uid(用户id) | create_time(签到时间)


签到功能需求是这样的:
用户每天允许签到一次,本周连续签到满勤奖励积分(这里指的是每周只要连续签到满7天都会有积分奖励,中途断签是不奖励)

该如何统计本周是否连续签到 7 天,表设计有哪些问题?

杨__羊羊
浏览 536回答 2
2回答

慕码人8056858

感觉一张表就够了,最后签到日期,连续签到总数。签到,先判断最后签到日期是不是昨天?是昨天,连续签到总数加+1;不是昨天,连续签到总数变成1。至于奖励问题,很好算,比如说周日这天,最后签到日期是昨天,然后连续签到总数-6大于等于0,那就说明满足奖励了。

PIPIONE

想了一下目前还是在副表中查询本周的记录,如果记录等于7条表示已经本周签到了7天,实在想不到更好的方法了。
打开App,查看更多内容
随时随地看视频慕课网APP