67 lines
3.3 KiB
SQL
67 lines
3.3 KiB
SQL
use school_news;
|
||
-- MySQL Script to create the user table
|
||
DROP TABLE IF EXISTS `tb_sys_user`;
|
||
CREATE TABLE `tb_sys_user` (
|
||
`id` VARCHAR(50) NOT NULL COMMENT '用户ID',
|
||
`username` VARCHAR(50) NOT NULL COMMENT '用户名',
|
||
`password` VARCHAR(128) NOT NULL COMMENT '密码(建议存储 bcrypt/argon2 哈希)',
|
||
`email` VARCHAR(100) DEFAULT NULL COMMENT '电子邮件',
|
||
`phone` VARCHAR(20) DEFAULT NULL COMMENT '电话号码',
|
||
`wechat_id` VARCHAR(50) DEFAULT NULL COMMENT '微信ID',
|
||
`create_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`update_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
`delete_time` TIMESTAMP NULL DEFAULT NULL COMMENT '删除时间',
|
||
`deleted` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否删除',
|
||
`status` INT(4) NOT NULL DEFAULT 1 COMMENT '状态',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_user_username` (`username`),
|
||
UNIQUE KEY `uk_user_email` (`email`),
|
||
KEY `idx_user_phone` (`phone`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
|
||
|
||
-- 推荐:把默认 admin 密码替换为已哈希的值
|
||
|
||
-- 用户信息表
|
||
DROP TABLE IF EXISTS `tb_sys_user_info`;
|
||
CREATE TABLE `tb_sys_user_info` (
|
||
`id` VARCHAR(50) NOT NULL COMMENT '用户信息ID',
|
||
`user_id` VARCHAR(50) NOT NULL COMMENT '用户ID',
|
||
`avatar` VARCHAR(255) DEFAULT NULL COMMENT '头像',
|
||
`gender` INT(4) DEFAULT 0 COMMENT '性别',
|
||
`family_name` VARCHAR(50) DEFAULT NULL COMMENT '姓',
|
||
`given_name` VARCHAR(50) DEFAULT NULL COMMENT '名',
|
||
`full_name` VARCHAR(100) DEFAULT NULL COMMENT '全名',
|
||
`level` INT(4) DEFAULT 1 COMMENT '等级',
|
||
`student_id` VARCHAR(50) DEFAULT NULL COMMENT '学号',
|
||
`id_card` VARCHAR(50) DEFAULT NULL COMMENT '身份证号',
|
||
`address` VARCHAR(255) DEFAULT NULL COMMENT '地址',
|
||
`create_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`update_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
`delete_time` TIMESTAMP NULL DEFAULT NULL COMMENT '删除时间',
|
||
`deleted` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否删除',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_user_info_user_id` (`user_id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
|
||
|
||
|
||
DROP TABLE IF EXISTS `tb_sys_login_log`;
|
||
CREATE TABLE `tb_sys_login_log` (
|
||
`id` VARCHAR(50) NOT NULL COMMENT '登录日志ID',
|
||
`user_id` VARCHAR(50) NULL COMMENT '用户ID',
|
||
`username` VARCHAR(50) NOT NULL COMMENT '用户名',
|
||
`ip_address` VARCHAR(45) DEFAULT NULL COMMENT 'IP地址',
|
||
`ip_source` VARCHAR(100) DEFAULT NULL COMMENT 'IP来源',
|
||
`browser` VARCHAR(100) DEFAULT NULL COMMENT '浏览器',
|
||
`os` VARCHAR(100) DEFAULT NULL COMMENT '操作系统',
|
||
`password` VARCHAR(100) DEFAULT NULL COMMENT '密码',
|
||
`login_time` TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '登录时间',
|
||
`status` INT(4) DEFAULT 1 COMMENT '登录状态(0失败 1成功)',
|
||
`error_count` INT(4) DEFAULT 0 COMMENT '错误次数',
|
||
`message` VARCHAR(255) DEFAULT NULL COMMENT '登录消息',
|
||
`create_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
PRIMARY KEY (`id`),
|
||
index `idx_user_id` (`user_id`) USING BTREE,
|
||
index `idx_login_time` (`login_time`) USING BTREE
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
|
||
|