57 lines
2.5 KiB
SQL
57 lines
2.5 KiB
SQL
-- =============================================
|
||
-- 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;
|