建表
-- 用户表
CREATE TABLE `sys_user` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`username` varchar(50) DEFAULT NULL COMMENT '用户名',
`password` varchar(100) NOT NULL COMMENT '密码',
`salt` varchar(100) NOT NULL COMMENT '密码盐值',
`email` varchar(100) NOT NULL COMMENT '邮箱',
`phone` varchar(20) DEFAULT NULL COMMENT '手机号',
`status` tinyint(4) NOT NULL DEFAULT '1' COMMENT '状态:0-禁用,1-启用',
`last_login_time` datetime DEFAULT NULL COMMENT '最后登录时间',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_email` (`email`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户表';
-- 验证码
CREATE TABLE verification_code (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
code VARCHAR(6) NOT NULL,
email VARCHAR(255) NOT NULL,
type VARCHAR(20) NOT NULL COMMENT '验证码类型:REGISTER-注册,LOGIN-登录',
create_time DATETIME NOT NULL,
expire_time DATETIME NOT NULL,
used BOOLEAN NOT NULL DEFAULT FALSE
);
CREATE INDEX idx_email_code ON verification_code(email, code);
CREATE INDEX idx_create_time ON verification_code(create_time);