表
用户签到表
CREATE TABLE `t_user_sign` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`count` int(11) DEFAULT NULL,
`create_time` datetime DEFAULT NULL,
`last_modify_time` datetime DEFAULT NULL,
`sign_count` int(11) DEFAULT NULL,
`user_id` bigint(20) NOT NULL,
PRIMARY KEY (`id`),
KEY `id` (`id`),
KEY `user_id` (`user_id`),
KEY `last_modify_time` (`last_modify_time`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;
用户签到日志表
CREATE TABLE `t_user_sign_log` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`create_time` datetime DEFAULT NULL,
`sign_status` char(1) NOT NULL,
`update_time` datetime DEFAULT NULL,
`user_sign_id` bigint(20) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `user_sign_id` (`user_sign_id`),
KEY `sign_status` (`sign_status`,`user_sign_id`)
) ENGINE=InnoDB AUTO_INCREMENT=20 DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;
简单的代码体现
使用的是JPA方式,可以根据情况自己转换
**
* 描述:
*
* @author 哈哈哈
* @date 2019/5/9 13:53
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@Entity
@Table(name = "t_user_sign")
public class UserSign {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
/**
* 关联用户ID
*/
@Column(nullable = false)
private Long userId;
/**
* 创建时间
*/
@Column
private Date createTime;
/**
* 最后签到时间
*/
@Column
private Date lastModifyTime;
/**
* 连续签到次数
*/
@Column
private Integer signCount;
/**
* 签到次数
*/
@Column
private Integer count;
}
/**
* 描述:用户签到记录表
*
* @author 哈哈哈
* @