学生换班级记录表.sql 3.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. -- ==========================================
  2. -- 数据库变更脚本
  3. -- 版本:V1.0.0
  4. -- 功能:新增学生换班级记录表
  5. -- 作者:AI Assistant
  6. -- 时间:2025-01-25
  7. -- ==========================================
  8. -- ----------------------------
  9. -- Table structure for xg_student_class_change
  10. -- ----------------------------
  11. DROP TABLE IF EXISTS `xg_student_class_change`;
  12. CREATE TABLE `xg_student_class_change` (
  13. -- 基础字段(必须)
  14. `id` bigint(20) NOT NULL COMMENT '主键ID(雪花ID)',
  15. `tenant_id` varchar(20) NOT NULL DEFAULT '000000' COMMENT '租户编号',
  16. `create_dept` bigint(20) DEFAULT NULL COMMENT '创建部门',
  17. `create_by` bigint(20) DEFAULT NULL COMMENT '创建者',
  18. `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  19. `update_by` bigint(20) DEFAULT NULL COMMENT '更新者',
  20. `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  21. `deleted` tinyint(1) DEFAULT '0' COMMENT '删除标志(0代表存在 1代表删除)',
  22. -- 学生基本信息
  23. `student_id` bigint(20) NOT NULL COMMENT '学生ID,关联xg_student_msg.id',
  24. `student_no` varchar(32) NOT NULL COMMENT '学号',
  25. `student_name` varchar(50) NOT NULL COMMENT '学生姓名',
  26. -- 原班级信息
  27. `original_college_id` bigint(20) DEFAULT NULL COMMENT '原学院ID ',
  28. `original_college_name` varchar(100) DEFAULT NULL COMMENT '原学院名称',
  29. `original_major_id` bigint(20) DEFAULT NULL COMMENT '原专业ID ',
  30. `original_major_name` varchar(100) DEFAULT NULL COMMENT '原专业名称',
  31. `original_class_id` bigint(20) DEFAULT NULL COMMENT '原班级ID ',
  32. `original_class_code` varchar(32) DEFAULT NULL COMMENT '原班级代码',
  33. `original_class_name` varchar(100) DEFAULT NULL COMMENT '原班级名称',
  34. -- 新班级信息
  35. `new_college_id` bigint(20) DEFAULT NULL COMMENT '新学院ID ',
  36. `new_college_name` varchar(100) DEFAULT NULL COMMENT '新学院名称',
  37. `new_major_id` bigint(20) DEFAULT NULL COMMENT '新专业ID ',
  38. `new_major_name` varchar(100) DEFAULT NULL COMMENT '新专业名称',
  39. `new_class_id` bigint(20) DEFAULT NULL COMMENT '新班级ID ',
  40. `new_class_code` varchar(32) DEFAULT NULL COMMENT '新班级代码',
  41. `new_class_name` varchar(100) DEFAULT NULL COMMENT '新班级名称',
  42. -- 换班级业务信息
  43. `change_reason` varchar(500) DEFAULT NULL COMMENT '换班级原因',
  44. `change_type` char(1) DEFAULT '1' COMMENT '换班级类型:1-主动申请,2-学校调整,3-专业调整,4-其他',
  45. `change_time` datetime DEFAULT NULL COMMENT '换班级时间',
  46. `effective_time` datetime DEFAULT NULL COMMENT '生效时间',
  47. `status` char(1) DEFAULT '0' COMMENT '处理状态:0-未处理,1-已处理',
  48. -- 扩展字段
  49. `remark` varchar(500) DEFAULT NULL COMMENT '备注',
  50. -- 主键和索引
  51. PRIMARY KEY (`id`) USING BTREE,
  52. UNIQUE KEY `uk_student_change_time` (`student_id`, `change_time`, `tenant_id`, `deleted`),
  53. KEY `idx_tenant_id` (`tenant_id`),
  54. KEY `idx_deleted` (`deleted`),
  55. KEY `idx_student_id` (`student_id`),
  56. KEY `idx_student_no` (`student_no`),
  57. KEY `idx_original_class_id` (`original_class_id`),
  58. KEY `idx_new_class_id` (`new_class_id`),
  59. KEY `idx_change_time` (`change_time`),
  60. KEY `idx_effective_time` (`effective_time`),
  61. KEY `idx_create_time` (`create_time`),
  62. KEY `idx_tenant_deleted` (`tenant_id`, `deleted`)
  63. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='学生换班级记录表';
  64. -- 建表完成提示
  65. -- 注意事项:
  66. -- 1. 该表遵循项目数据库规范,包含所有强制性基础字段
  67. -- 2. 使用雪花ID作为主键,支持多租户数据隔离
  68. -- 3. 支持逻辑删除,避免物理删除数据
  69. -- 4. 记录学生换班级的完整历史信息,包括审批流程
  70. -- 5. 关联字段不使用外键约束,通过应用层逻辑维护数据一致性
  71. -- 6. 索引设计遵循性能优化原则