-- ============================================= -- Week 5:学生管理系统 v2 数据库初始化 -- 新增:users 表(认证)+ 逻辑删除 + RBAC -- ============================================= CREATE DATABASE IF NOT EXISTS week5_student DEFAULT CHARACTER SET utf8mb4 DEFAULT COLLATE utf8mb4_unicode_ci; USE week5_student; -- 学生表(增加 deleted 字段用于逻辑删除,第 7 天) DROP TABLE IF EXISTS student; CREATE TABLE student ( id BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID', name VARCHAR(20) NOT NULL COMMENT '姓名', age INT NOT NULL COMMENT '年龄', email VARCHAR(50) NOT NULL COMMENT '邮箱', score INT NOT NULL DEFAULT 0 COMMENT '成绩 0-100', deleted TINYINT NOT NULL DEFAULT 0 COMMENT '逻辑删除 0-未删 1-已删', create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, update_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (id), INDEX idx_name (name), INDEX idx_score (score) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='学生表'; -- 用户表(Spring Security 认证用,第 2-3 天) DROP TABLE IF EXISTS users; CREATE TABLE users ( id BIGINT NOT NULL AUTO_INCREMENT, username VARCHAR(50) NOT NULL UNIQUE COMMENT '用户名', password VARCHAR(200) NOT NULL COMMENT 'BCrypt 加密后的密码', role VARCHAR(20) NOT NULL DEFAULT 'USER' COMMENT '角色:ADMIN / USER', enabled TINYINT NOT NULL DEFAULT 1 COMMENT '是否启用', create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户表'; -- 预置学生数据 INSERT INTO student (name, age, email, score) VALUES ('张三', 20, 'zhangsan@mail.com', 85), ('李四', 22, 'lisi@mail.com', 92), ('王五', 19, 'wangwu@mail.com', 78), ('赵六', 21, 'zhaoliu@mail.com', 88), ('孙七', 23, 'sunqi@mail.com', 95), ('周八', 20, 'zhouba@mail.com', 73), ('吴九', 22, 'wujiu@mail.com', 81), ('郑十', 21, 'zhengshi@mail.com',90); -- 用户数据由应用启动时通过 Java 代码自动初始化(保证 BCrypt 哈希正确) -- 默认账号:admin / 123456(ADMIN)、user / 123456(USER) SELECT 'student' AS tbl, COUNT(*) AS cnt FROM student UNION ALL SELECT 'users', COUNT(*) FROM users;