+
104
-

回答

表数据

CREATE TABLE user_signins (
  id INT AUTO_INCREMENT PRIMARY KEY,
  user_id INT NOT NULL,
  sign_in_date DATE NOT NULL,
  consecutive_days INT DEFAULT 1,
  last_sign_in_date DATE NOT NULL
);

当签到时,检测昨天的是否有签到数据,如果有的话在今天签到数据的consecutive_days值设为昨天的consecutive_days+1

如果昨天没有签到数据,直接插入今天的签到数据,consecutive_days=1

查询的时候传入userid,获取昨天的用户签到的consecutive_days就知道连续签到几天了。

网友回复

我知道答案,我要回答