签到做为,一个促进用户粘性的手段已经很成熟了。
这里说下,个人的一些设计表思路
添加用户配置表。主键关联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='用户签到日志记录';
//以上这些,仅做记录。如有帮助,那是最好。