-- ========================================== -- 数据库变更脚本 -- 版本:V1.0.0 -- 功能:新增学生换班级记录表 -- 作者:AI Assistant -- 时间:2025-01-25 -- ========================================== -- ---------------------------- -- Table structure for xg_student_class_change -- ---------------------------- DROP TABLE IF EXISTS `xg_student_class_change`; CREATE TABLE `xg_student_class_change` ( -- 基础字段(必须) `id` bigint(20) NOT NULL COMMENT '主键ID(雪花ID)', `tenant_id` varchar(20) NOT NULL DEFAULT '000000' COMMENT '租户编号', `create_dept` bigint(20) DEFAULT NULL COMMENT '创建部门', `create_by` bigint(20) DEFAULT NULL COMMENT '创建者', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_by` bigint(20) DEFAULT NULL COMMENT '更新者', `update_time` datetime DEFAULT NULL COMMENT '更新时间', `deleted` tinyint(1) DEFAULT '0' COMMENT '删除标志(0代表存在 1代表删除)', -- 学生基本信息 `student_id` bigint(20) NOT NULL COMMENT '学生ID,关联xg_student_msg.id', `student_no` varchar(32) NOT NULL COMMENT '学号', `student_name` varchar(50) NOT NULL COMMENT '学生姓名', -- 原班级信息 `original_college_id` bigint(20) DEFAULT NULL COMMENT '原学院ID ', `original_college_name` varchar(100) DEFAULT NULL COMMENT '原学院名称', `original_major_id` bigint(20) DEFAULT NULL COMMENT '原专业ID ', `original_major_name` varchar(100) DEFAULT NULL COMMENT '原专业名称', `original_class_id` bigint(20) DEFAULT NULL COMMENT '原班级ID ', `original_class_code` varchar(32) DEFAULT NULL COMMENT '原班级代码', `original_class_name` varchar(100) DEFAULT NULL COMMENT '原班级名称', -- 新班级信息 `new_college_id` bigint(20) DEFAULT NULL COMMENT '新学院ID ', `new_college_name` varchar(100) DEFAULT NULL COMMENT '新学院名称', `new_major_id` bigint(20) DEFAULT NULL COMMENT '新专业ID ', `new_major_name` varchar(100) DEFAULT NULL COMMENT '新专业名称', `new_class_id` bigint(20) DEFAULT NULL COMMENT '新班级ID ', `new_class_code` varchar(32) DEFAULT NULL COMMENT '新班级代码', `new_class_name` varchar(100) DEFAULT NULL COMMENT '新班级名称', -- 换班级业务信息 `change_reason` varchar(500) DEFAULT NULL COMMENT '换班级原因', `change_type` char(1) DEFAULT '1' COMMENT '换班级类型:1-主动申请,2-学校调整,3-专业调整,4-其他', `change_time` datetime DEFAULT NULL COMMENT '换班级时间', `effective_time` datetime DEFAULT NULL COMMENT '生效时间', `status` char(1) DEFAULT '0' COMMENT '处理状态:0-未处理,1-已处理', -- 扩展字段 `remark` varchar(500) DEFAULT NULL COMMENT '备注', -- 主键和索引 PRIMARY KEY (`id`) USING BTREE, UNIQUE KEY `uk_student_change_time` (`student_id`, `change_time`, `tenant_id`, `deleted`), KEY `idx_tenant_id` (`tenant_id`), KEY `idx_deleted` (`deleted`), KEY `idx_student_id` (`student_id`), KEY `idx_student_no` (`student_no`), KEY `idx_original_class_id` (`original_class_id`), KEY `idx_new_class_id` (`new_class_id`), KEY `idx_change_time` (`change_time`), KEY `idx_effective_time` (`effective_time`), KEY `idx_create_time` (`create_time`), KEY `idx_tenant_deleted` (`tenant_id`, `deleted`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='学生换班级记录表'; -- 建表完成提示 -- 注意事项: -- 1. 该表遵循项目数据库规范,包含所有强制性基础字段 -- 2. 使用雪花ID作为主键,支持多租户数据隔离 -- 3. 支持逻辑删除,避免物理删除数据 -- 4. 记录学生换班级的完整历史信息,包括审批流程 -- 5. 关联字段不使用外键约束,通过应用层逻辑维护数据一致性 -- 6. 索引设计遵循性能优化原则