-- 创建数据库
CREATE DATABASE IF NOT EXISTS student_management DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

USE student_management;

-- 创建学生表
CREATE TABLE IF NOT EXISTS students (
    id INT PRIMARY KEY AUTO_INCREMENT COMMENT '学生ID',
    student_no VARCHAR(20) NOT NULL UNIQUE COMMENT '学号',
    name VARCHAR(50) NOT NULL COMMENT '姓名',
    gender VARCHAR(10) COMMENT '性别',
    age INT COMMENT '年龄',
    class_name VARCHAR(50) COMMENT '班级',
    major VARCHAR(50) COMMENT '专业',
    phone VARCHAR(20) COMMENT '联系电话',
    email VARCHAR(100) COMMENT '电子邮箱',
    address VARCHAR(200) COMMENT '家庭住址',
    birthday DATE COMMENT '出生日期',
    status VARCHAR(10) DEFAULT '在读' COMMENT '状态(在读/休学/毕业)',
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='学生信息表';

-- 插入测试数据
INSERT INTO students (student_no, name, gender, age, class_name, major, phone, email, address, birthday, status) VALUES
('2024001', '张三', '男', 20, '计算机2024-1班', '计算机科学与技术', '13800138001', 'zhangsan@example.com', '北京市海淀区', '2004-03-15', '在读'),
('2024002', '李四', '女', 19, '计算机2024-1班', '计算机科学与技术', '13800138002', 'lisi@example.com', '上海市浦东新区', '2005-07-22', '在读'),
('2024003', '王五', '男', 21, '软件2024-1班', '软件工程', '13800138003', 'wangwu@example.com', '广州市天河区', '2003-11-08', '在读'),
('2024004', '赵六', '女', 20, '软件2024-1班', '软件工程', '13800138004', 'zhaoliu@example.com', '深圳市南山区', '2004-05-18', '在读'),
('2024005', '孙七', '男', 22, '大数据2024-1班', '数据科学与大数据技术', '13800138005', 'sunqi@example.com', '杭州市西湖区', '2002-09-25', '休学');

-- ============================================================
-- 用户表（支持登录认证和权限控制）
-- ============================================================
CREATE TABLE IF NOT EXISTS users (
    id INT PRIMARY KEY AUTO_INCREMENT COMMENT '用户ID',
    username VARCHAR(50) NOT NULL UNIQUE COMMENT '登录用户名',
    password VARCHAR(100) NOT NULL COMMENT '登录密码(MD5加密)',
    real_name VARCHAR(50) COMMENT '真实姓名',
    role VARCHAR(20) NOT NULL DEFAULT 'user' COMMENT '角色: admin=系统管理员, user=一般用户',
    email VARCHAR(100) COMMENT '电子邮箱',
    phone VARCHAR(20) COMMENT '联系电话',
    avatar VARCHAR(200) COMMENT '头像路径',
    status VARCHAR(10) DEFAULT '正常' COMMENT '状态: 正常/禁用',
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户表';

-- 插入内置管理员账户（密码: admin123）
INSERT INTO users (username, password, real_name, role, email, phone) VALUES
('admin', '0192023a7bbd73250516f069df18b500', '系统管理员', 'admin', 'admin@student.com', '13800000000');

-- 插入一般用户测试账户（密码: 123456）
INSERT INTO users (username, password, real_name, role, email, phone) VALUES
('zhangsan', 'e10adc3949ba59abbe56e057f20f883e', '张三', 'user', 'zhangsan@example.com', '13800138001'),
('lisi', 'e10adc3949ba59abbe56e057f20f883e', '李四', 'user', 'lisi@example.com', '13800138002'),
('wangwu', 'e10adc3949ba59abbe56e057f20f883e', '王五', 'user', 'wangwu@example.com', '13800138003');
