用户签到表的设计思路与数据库实现

签到做为,一个促进用户粘性的手段已经很成熟了。

这里说下,个人的一些设计表思路
添加用户配置表。主键关联User表,即可。
 CREATE TABLE `cft_user_signin` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'id',
  `user_id` int(11) DEFAULT NULL COMMENT '用户id',//关联主用户表。想当于是主键表的外键关系表。
  `days` int(10) DEFAULT NULL COMMENT '连续签到天数',//判断用户是否连续签到
  `last_signin_time` int(10) DEFAULT NULL COMMENT '最后一次签到时间',//最后一次签到时间
  `signin_nums` int(2) DEFAULT '0' COMMENT '可补签次数',//用户有没有补签的机会。
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='用户签到个人配置表';

CREATE TABLE `cft_user_signin_log` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'id',//自增id
  `user_id` int(11) DEFAULT NULL COMMENT '用户id',//用户id,做为获取用户签到情况的表
  `signin_content` text COMMENT '签到奖励内容',//用户已经获得的内容,或者其他序列化的参数。
  `add_time` int(10) DEFAULT NULL COMMENT '签到时间',//用户正常签到的时间,补签时,用pacht_time,替换add_time,
  `signintype` enum('签到','补签') DEFAULT '签到' COMMENT '签到类型1=签到2=补签',//签到记录类型
  `patch_time` int(10) DEFAULT NULL COMMENT '补签的时间',//补签遗漏的时间。当前时间的前一天,或者好几天。
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='用户签到日志记录';
//以上这些,仅做记录。如有帮助,那是最好。

posted @ 2020-10-07 11:47  china/xin  阅读(2522)  评论(0编辑  收藏  举报