Files
hzdyjs/docs/设计文档/database/学工管理-学生信息管理/09-student-management-module.sql
T
2025-07-26 17:54:01 +08:00

438 lines
22 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
-- ==========================================
-- 学生信息管理模块数据库脚本
-- 版本:V1.0.1
-- 功能:学生信息管理模块完整表结构
-- 作者:Cursor AI 辅助
-- 时间:2025-01-12
-- 依据文档:docs/需求文档/学工管理学生信息管理需求/学生信息管理需求分析书.md
-- ==========================================
-- 设置字符集
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for xg_student_info
-- ----------------------------
DROP TABLE IF EXISTS `xg_student_info`;
CREATE TABLE `xg_student_info` (
-- 标准基础字段(必须)
`id` bigint(20) NOT NULL COMMENT '主键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` varchar(32) NOT NULL COMMENT '学号',
`name` varchar(50) NOT NULL COMMENT '姓名',
`gender` char(1) NOT NULL COMMENT '性别:0-男,1-女',
`birth_date` date DEFAULT NULL COMMENT '出生日期',
`id_card` varchar(18) DEFAULT NULL COMMENT '身份证号',
`nation` varchar(20) DEFAULT NULL COMMENT '民族',
`political_status` varchar(20) DEFAULT NULL COMMENT '政治面貌',
`religion` varchar(20) DEFAULT NULL COMMENT '宗教信仰',
`photo_url` varchar(500) DEFAULT NULL COMMENT '照片URL',
-- 学籍信息
`admission_date` date DEFAULT NULL COMMENT '入学时间',
`education_length` tinyint(1) DEFAULT 4 COMMENT '学制(年)',
`major` varchar(100) DEFAULT NULL COMMENT '专业',
`class_id` bigint(20) DEFAULT NULL COMMENT '班级ID,关联xg_class_info.id',
`class_name` varchar(100) DEFAULT NULL COMMENT '班级名称(冗余字段)',
`student_status` char(1) DEFAULT '1' COMMENT '学籍状态:1-在籍,2-休学,3-复学,4-退学,5-毕业,6-肄业,7-转学,8-其他',
`training_type` varchar(20) DEFAULT NULL COMMENT '培养方式:全日制,在职,函授,夜大等',
`enrollment_type` varchar(20) DEFAULT NULL COMMENT '入学方式:统招,自考,成教,网教等',
-- 联系信息
`phone` varchar(20) DEFAULT NULL COMMENT '手机号',
`email` varchar(100) DEFAULT NULL COMMENT '邮箱',
`qq_number` varchar(20) DEFAULT NULL COMMENT 'QQ号码',
`wechat_number` varchar(50) DEFAULT NULL COMMENT '微信号',
`home_address` varchar(200) DEFAULT NULL COMMENT '家庭地址',
`current_address` varchar(200) DEFAULT NULL COMMENT '现住址',
`postal_code` varchar(10) DEFAULT NULL COMMENT '邮政编码',
`emergency_contact` varchar(50) DEFAULT NULL COMMENT '紧急联系人',
`emergency_phone` varchar(20) DEFAULT NULL COMMENT '紧急联系电话',
`emergency_relation` varchar(20) DEFAULT NULL COMMENT '紧急联系人关系',
-- 家庭信息
`father_name` varchar(50) DEFAULT NULL COMMENT '父亲姓名',
`father_phone` varchar(20) DEFAULT NULL COMMENT '父亲电话',
`father_work` varchar(100) DEFAULT NULL COMMENT '父亲工作单位',
`mother_name` varchar(50) DEFAULT NULL COMMENT '母亲姓名',
`mother_phone` varchar(20) DEFAULT NULL COMMENT '母亲电话',
`mother_work` varchar(100) DEFAULT NULL COMMENT '母亲工作单位',
`family_income` varchar(20) DEFAULT NULL COMMENT '家庭年收入',
`family_members` tinyint(2) DEFAULT NULL COMMENT '家庭成员数量',
-- 体征信息
`height` decimal(5,2) DEFAULT NULL COMMENT '身高(cm)',
`weight` decimal(5,2) DEFAULT NULL COMMENT '体重(kg)',
`blood_type` varchar(5) DEFAULT NULL COMMENT '血型:A,B,AB,O,未知',
`health_status` varchar(20) DEFAULT NULL COMMENT '健康状况',
`medical_history` varchar(500) DEFAULT NULL COMMENT '病史记录',
`allergies` varchar(200) DEFAULT NULL COMMENT '过敏史',
-- 财务信息
`bank_card_number` varchar(30) DEFAULT NULL COMMENT '银行卡号',
`bank_name` varchar(100) DEFAULT NULL COMMENT '开户银行',
`bank_account_name` varchar(50) DEFAULT NULL COMMENT '持卡人姓名',
`bank_phone` varchar(20) DEFAULT NULL COMMENT '银行预留手机号',
-- 生源信息
`birthplace` varchar(100) DEFAULT NULL COMMENT '出生地',
`native_place` varchar(100) DEFAULT NULL COMMENT '籍贯',
`hukou_type` varchar(20) DEFAULT NULL COMMENT '户口性质:城镇,农村',
`hukou_location` varchar(100) DEFAULT NULL COMMENT '户口所在地',
`high_school` varchar(100) DEFAULT NULL COMMENT '毕业高中',
`admission_score` decimal(6,2) DEFAULT NULL COMMENT '入学成绩',
`admission_rank` int(11) DEFAULT NULL COMMENT '入学排名',
-- 扩展信息
`specialties` varchar(200) DEFAULT NULL COMMENT '特长爱好',
`certificates` varchar(500) DEFAULT NULL COMMENT '获得证书',
`social_work` varchar(500) DEFAULT NULL COMMENT '社会工作经历',
`awards` varchar(500) DEFAULT NULL COMMENT '获奖情况',
`punishment` varchar(500) DEFAULT NULL COMMENT '违纪处分记录',
`scholarship` varchar(500) DEFAULT NULL COMMENT '奖学金获得情况',
`financial_aid` varchar(500) DEFAULT NULL COMMENT '助学金情况',
`work_study` varchar(500) DEFAULT NULL COMMENT '勤工助学情况',
`internship` varchar(500) DEFAULT NULL COMMENT '实习经历',
-- 状态信息
`info_status` char(1) DEFAULT '1' COMMENT '信息状态:1-正常,2-待审核,3-审核中,4-已驳回,5-已锁定',
`last_update_batch` bigint(20) DEFAULT NULL COMMENT '最后更新批次ID,关联xg_collection_batch.id',
`data_source` varchar(20) DEFAULT 'manual' COMMENT '数据来源:manual-手工录入,import-批量导入,sync-同步导入',
`is_complete` tinyint(1) DEFAULT 0 COMMENT '信息是否完整:0-不完整,1-完整',
`completion_rate` decimal(5,2) DEFAULT 0 COMMENT '完整度百分比',
-- 其他字段
`remark` varchar(500) DEFAULT NULL COMMENT '备注信息',
-- 主键和索引
PRIMARY KEY (`id`) USING BTREE,
UNIQUE KEY `uk_student_id` (`student_id`, `tenant_id`),
KEY `idx_tenant_id` (`tenant_id`),
KEY `idx_deleted` (`deleted`),
KEY `idx_name` (`name`),
KEY `idx_class_id` (`class_id`),
KEY `idx_student_status` (`student_status`),
KEY `idx_info_status` (`info_status`),
KEY `idx_create_time` (`create_time`),
KEY `idx_phone` (`phone`),
KEY `idx_id_card` (`id_card`),
KEY `idx_admission_date` (`admission_date`),
KEY `idx_major` (`major`),
KEY `idx_last_update_batch` (`last_update_batch`),
KEY `idx_tenant_status` (`tenant_id`, `student_status`, `deleted`),
KEY `idx_class_status` (`class_id`, `info_status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='学生信息表';
-- ----------------------------
-- Table structure for xg_class_info
-- ----------------------------
DROP TABLE IF EXISTS `xg_class_info`;
CREATE TABLE `xg_class_info` (
-- 标准基础字段(必须)
`id` bigint(20) NOT NULL COMMENT '主键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代表删除)',
-- 班级基础信息
`class_code` varchar(32) NOT NULL COMMENT '班级代码',
`class_name` varchar(100) NOT NULL COMMENT '班级名称',
`class_type` varchar(20) DEFAULT 'regular' COMMENT '班级类型:regular-普通班,honor-荣誉班,experimental-实验班',
`grade` varchar(10) NOT NULL COMMENT '年级',
`enrollment_year` int(4) NOT NULL COMMENT '入学年份',
`graduation_year` int(4) DEFAULT NULL COMMENT '毕业年份',
-- 学院和专业信息
`college_id` bigint(20) DEFAULT NULL COMMENT '学院ID,关联sys_dept.id',
`college_name` varchar(100) DEFAULT NULL COMMENT '学院名称(冗余字段)',
`major` varchar(100) NOT NULL COMMENT '专业',
`major_code` varchar(20) DEFAULT NULL COMMENT '专业代码',
`training_type` varchar(20) DEFAULT NULL COMMENT '培养方式:全日制,在职,函授,夜大等',
`degree_type` varchar(20) DEFAULT NULL COMMENT '学位类型:学士,硕士,博士,专科',
-- 人员配置
`counselor_id` bigint(20) DEFAULT NULL COMMENT '辅导员ID,关联sys_user.id',
`counselor_name` varchar(50) DEFAULT NULL COMMENT '辅导员姓名(冗余字段)',
`head_teacher_id` bigint(20) DEFAULT NULL COMMENT '班主任ID,关联sys_user.id',
`head_teacher_name` varchar(50) DEFAULT NULL COMMENT '班主任姓名(冗余字段)',
`class_monitor_id` bigint(20) DEFAULT NULL COMMENT '班长ID,关联xg_student_info.id',
`class_monitor_name` varchar(50) DEFAULT NULL COMMENT '班长姓名(冗余字段)',
`deputy_monitor_id` bigint(20) DEFAULT NULL COMMENT '副班长ID,关联xg_student_info.id',
`deputy_monitor_name` varchar(50) DEFAULT NULL COMMENT '副班长姓名(冗余字段)',
-- 班级规模
`planned_capacity` int(11) DEFAULT 30 COMMENT '计划容量',
`current_count` int(11) DEFAULT 0 COMMENT '当前人数',
`male_count` int(11) DEFAULT 0 COMMENT '男生人数',
`female_count` int(11) DEFAULT 0 COMMENT '女生人数',
`active_count` int(11) DEFAULT 0 COMMENT '在籍人数',
-- 联系信息
`office_location` varchar(200) DEFAULT NULL COMMENT '班级办公室位置',
`contact_phone` varchar(20) DEFAULT NULL COMMENT '联系电话',
`qq_group` varchar(20) DEFAULT NULL COMMENT 'QQ群号',
`wechat_group` varchar(100) DEFAULT NULL COMMENT '微信群',
`email` varchar(100) DEFAULT NULL COMMENT '班级邮箱',
-- 状态信息
`class_status` char(1) DEFAULT '1' COMMENT '班级状态:1-正常,2-暂停,3-解散,4-合并,5-分流',
`is_graduation` tinyint(1) DEFAULT 0 COMMENT '是否已毕业:0-未毕业,1-已毕业',
`graduation_date` date DEFAULT NULL COMMENT '毕业日期',
-- 统计信息
`last_count_update` datetime DEFAULT NULL COMMENT '最后统计更新时间',
`transfer_in_count` int(11) DEFAULT 0 COMMENT '转入人数',
`transfer_out_count` int(11) DEFAULT 0 COMMENT '转出人数',
`dropout_count` int(11) DEFAULT 0 COMMENT '退学人数',
`graduate_count` int(11) DEFAULT 0 COMMENT '毕业人数',
-- 其他字段
`description` varchar(500) DEFAULT NULL COMMENT '班级描述',
`sort_order` int(11) DEFAULT 0 COMMENT '排序顺序',
`remark` varchar(500) DEFAULT NULL COMMENT '备注信息',
-- 主键和索引
PRIMARY KEY (`id`) USING BTREE,
UNIQUE KEY `uk_class_code` (`class_code`, `tenant_id`),
KEY `idx_tenant_id` (`tenant_id`),
KEY `idx_deleted` (`deleted`),
KEY `idx_grade` (`grade`),
KEY `idx_college_id` (`college_id`),
KEY `idx_major` (`major`),
KEY `idx_counselor_id` (`counselor_id`),
KEY `idx_head_teacher_id` (`head_teacher_id`),
KEY `idx_class_status` (`class_status`),
KEY `idx_enrollment_year` (`enrollment_year`),
KEY `idx_is_graduation` (`is_graduation`),
KEY `idx_college_grade` (`college_id`, `grade`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='班级信息表';
-- ----------------------------
-- Table structure for xg_collection_batch
-- ----------------------------
DROP TABLE IF EXISTS `xg_collection_batch`;
CREATE TABLE `xg_collection_batch` (
-- 标准基础字段(必须)
`id` bigint(20) NOT NULL COMMENT '主键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代表删除)',
-- 批次基础信息
`batch_code` varchar(32) NOT NULL COMMENT '批次编号',
`batch_name` varchar(100) NOT NULL COMMENT '批次名称',
`batch_type` varchar(20) DEFAULT 'regular' COMMENT '批次类型:regular-常规采集,special-专项采集,urgent-紧急采集',
`academic_year` varchar(10) NOT NULL COMMENT '学年,如:2024-2025',
`semester` varchar(10) NOT NULL COMMENT '学期:spring-春季,autumn-秋季,summer-暑期',
-- 时间设置
`start_time` datetime NOT NULL COMMENT '开始时间',
`end_time` datetime NOT NULL COMMENT '结束时间',
`extend_time` datetime DEFAULT NULL COMMENT '延期时间',
`actual_end_time` datetime DEFAULT NULL COMMENT '实际结束时间',
-- 批次状态
`batch_status` char(1) DEFAULT '1' COMMENT '批次状态:1-准备中,2-进行中,3-暂停,4-已结束,5-已归档',
`is_auto_close` tinyint(1) DEFAULT 1 COMMENT '是否自动关闭:0-否,1-是',
`is_extendable` tinyint(1) DEFAULT 1 COMMENT '是否可延期:0-否,1-是',
-- 范围设置
`target_scope` varchar(20) DEFAULT 'all' COMMENT '目标范围:all-全校,college-学院,grade-年级,class-班级',
`target_college_ids` varchar(500) DEFAULT NULL COMMENT '目标学院ID列表(逗号分隔)',
`target_grade_list` varchar(100) DEFAULT NULL COMMENT '目标年级列表(逗号分隔)',
`target_class_ids` varchar(500) DEFAULT NULL COMMENT '目标班级ID列表(逗号分隔)',
`exclude_student_ids` text DEFAULT NULL COMMENT '排除学生ID列表(逗号分隔)',
-- 采集设置
`required_fields` text DEFAULT NULL COMMENT '必填字段列表(JSON格式)',
`optional_fields` text DEFAULT NULL COMMENT '可选字段列表(JSON格式)',
`readonly_fields` text DEFAULT NULL COMMENT '只读字段列表(JSON格式)',
`validation_rules` text DEFAULT NULL COMMENT '验证规则(JSON格式)',
-- 权限设置
`student_editable` tinyint(1) DEFAULT 1 COMMENT '学生是否可编辑:0-否,1-是',
`need_approval` tinyint(1) DEFAULT 1 COMMENT '是否需要审核:0-否,1-是',
`approval_levels` tinyint(1) DEFAULT 3 COMMENT '审核级别数:1-一级,2-二级,3-三级',
`auto_approve` tinyint(1) DEFAULT 0 COMMENT '是否自动审核:0-否,1-是',
-- 统计信息
`total_target_count` int(11) DEFAULT 0 COMMENT '目标学生总数',
`submitted_count` int(11) DEFAULT 0 COMMENT '已提交数量',
`approved_count` int(11) DEFAULT 0 COMMENT '已审核通过数量',
`rejected_count` int(11) DEFAULT 0 COMMENT '已驳回数量',
`completion_rate` decimal(5,2) DEFAULT 0 COMMENT '完成率百分比',
-- 时间统计
`first_submit_time` datetime DEFAULT NULL COMMENT '首次提交时间',
`last_submit_time` datetime DEFAULT NULL COMMENT '最后提交时间',
`avg_submit_duration` int(11) DEFAULT NULL COMMENT '平均提交时长(分钟)',
-- 其他字段
`description` varchar(500) DEFAULT NULL COMMENT '批次描述',
`notice_content` text DEFAULT NULL COMMENT '通知内容',
`remark` varchar(500) DEFAULT NULL COMMENT '备注信息',
-- 主键和索引
PRIMARY KEY (`id`) USING BTREE,
UNIQUE KEY `uk_batch_code` (`batch_code`, `tenant_id`),
KEY `idx_tenant_id` (`tenant_id`),
KEY `idx_deleted` (`deleted`),
KEY `idx_batch_status` (`batch_status`),
KEY `idx_academic_year` (`academic_year`),
KEY `idx_start_time` (`start_time`),
KEY `idx_end_time` (`end_time`),
KEY `idx_create_time` (`create_time`),
KEY `idx_year_semester` (`academic_year`, `semester`),
KEY `idx_status_time` (`batch_status`, `start_time`, `end_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='信息采集批次表';
-- ----------------------------
-- Table structure for xg_audit_record
-- ----------------------------
DROP TABLE IF EXISTS `xg_audit_record`;
CREATE TABLE `xg_audit_record` (
-- 标准基础字段(必须)
`id` bigint(20) NOT NULL COMMENT '主键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_info.id',
`student_number` varchar(32) NOT NULL COMMENT '学号',
`student_name` varchar(50) NOT NULL COMMENT '学生姓名',
`batch_id` bigint(20) NOT NULL COMMENT '批次ID,关联xg_collection_batch.id',
`batch_code` varchar(32) NOT NULL COMMENT '批次编号',
-- 审核级别和流程
`audit_level` tinyint(1) NOT NULL COMMENT '审核级别:1-辅导员/班主任,2-学院,3-学生处',
`audit_sequence` int(11) NOT NULL COMMENT '审核顺序号',
`is_current_step` tinyint(1) DEFAULT 0 COMMENT '是否当前步骤:0-否,1-是',
-- 审核人信息
`auditor_id` bigint(20) NOT NULL COMMENT '审核人ID,关联sys_user.id',
`auditor_name` varchar(50) NOT NULL COMMENT '审核人姓名',
`auditor_role` varchar(20) NOT NULL COMMENT '审核人角色:counselor-辅导员,teacher-班主任,college-学院管理员,office-学生处',
`auditor_dept` varchar(100) DEFAULT NULL COMMENT '审核人部门',
-- 审核结果
`audit_result` char(1) DEFAULT '1' COMMENT '审核结果:1-待审核,2-通过,3-驳回,4-退回修改,5-转审',
`audit_time` datetime DEFAULT NULL COMMENT '审核时间',
`audit_duration` int(11) DEFAULT NULL COMMENT '审核用时(分钟)',
-- 审核意见
`audit_opinion` varchar(500) DEFAULT NULL COMMENT '审核意见',
`reject_reason` varchar(500) DEFAULT NULL COMMENT '驳回原因',
`required_changes` text DEFAULT NULL COMMENT '要求修改的字段(JSON格式)',
-- 变更信息
`changed_fields` text DEFAULT NULL COMMENT '变更字段列表(JSON格式)',
`field_changes` text DEFAULT NULL COMMENT '字段变更详情(JSON格式)',
`change_count` int(11) DEFAULT 0 COMMENT '变更字段数量',
-- 流程控制
`next_auditor_id` bigint(20) DEFAULT NULL COMMENT '下一审核人ID',
`next_auditor_name` varchar(50) DEFAULT NULL COMMENT '下一审核人姓名',
`transfer_reason` varchar(200) DEFAULT NULL COMMENT '转审原因',
`is_final_step` tinyint(1) DEFAULT 0 COMMENT '是否最终步骤:0-否,1-是',
-- 时间信息
`submit_time` datetime DEFAULT NULL COMMENT '提交时间',
`assign_time` datetime DEFAULT NULL COMMENT '分配时间',
`deadline_time` datetime DEFAULT NULL COMMENT '截止时间',
`reminder_count` int(11) DEFAULT 0 COMMENT '提醒次数',
`last_reminder_time` datetime DEFAULT NULL COMMENT '最后提醒时间',
-- 其他字段
`priority_level` tinyint(1) DEFAULT 3 COMMENT '优先级:1-最高,2-高,3-普通,4-低,5-最低',
`attachment_ids` varchar(500) DEFAULT NULL COMMENT '附件ID列表(逗号分隔)',
`remark` varchar(500) DEFAULT NULL COMMENT '备注信息',
-- 主键和索引
PRIMARY KEY (`id`) USING BTREE,
KEY `idx_tenant_id` (`tenant_id`),
KEY `idx_deleted` (`deleted`),
KEY `idx_student_id` (`student_id`),
KEY `idx_batch_id` (`batch_id`),
KEY `idx_auditor_id` (`auditor_id`),
KEY `idx_audit_result` (`audit_result`),
KEY `idx_audit_level` (`audit_level`),
KEY `idx_audit_time` (`audit_time`),
KEY `idx_is_current_step` (`is_current_step`),
KEY `idx_student_batch` (`student_id`, `batch_id`),
KEY `idx_auditor_result` (`auditor_id`, `audit_result`),
KEY `idx_batch_level` (`batch_id`, `audit_level`, `audit_result`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='审核记录表';
-- ----------------------------
-- Table structure for xg_class_student
-- ----------------------------
DROP TABLE IF EXISTS `xg_class_student`;
CREATE TABLE `xg_class_student` (
-- 标准基础字段(必须)
`id` bigint(20) NOT NULL COMMENT '主键ID',
`tenant_id` varchar(20) NOT NULL DEFAULT '000000' COMMENT '租户编号',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`create_by` bigint(20) DEFAULT NULL COMMENT '创建者',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`update_by` bigint(20) DEFAULT NULL COMMENT '更新者',
-- 关联信息
`class_id` bigint(20) NOT NULL COMMENT '班级ID,关联xg_class_info.id',
`student_id` bigint(20) NOT NULL COMMENT '学生ID,关联xg_student_info.id',
`student_number` varchar(32) NOT NULL COMMENT '学号',
`student_name` varchar(50) NOT NULL COMMENT '学生姓名(冗余字段)',
-- 班级职务
`class_position` varchar(20) DEFAULT NULL COMMENT '班级职务:monitor-班长,deputy-副班长,secretary-学习委员,organizer-组织委员,publicity-宣传委员,sports-体育委员,life-生活委员,member-普通成员',
`position_level` tinyint(1) DEFAULT 9 COMMENT '职务级别:1-班长,2-副班长,3-委员,9-普通成员',
`appointment_time` datetime DEFAULT NULL COMMENT '任职时间',
`term_end_time` datetime DEFAULT NULL COMMENT '任期结束时间',
-- 状态信息
`relation_status` char(1) DEFAULT '1' COMMENT '关系状态:1-正常,2-转出,3-转入,4-休学,5-退学',
`join_time` datetime DEFAULT NULL COMMENT '加入时间',
`leave_time` datetime DEFAULT NULL COMMENT '离开时间',
`transfer_reason` varchar(200) DEFAULT NULL COMMENT '转班原因',
-- 学号顺序
`student_order` int(11) DEFAULT 0 COMMENT '班级内学号顺序',
`seat_number` varchar(10) DEFAULT NULL COMMENT '座位号',
`dormitory_info` varchar(100) DEFAULT NULL COMMENT '宿舍信息',
-- 其他字段
`remark` varchar(500) DEFAULT NULL COMMENT '备注信息',
-- 主键和索引
PRIMARY KEY (`id`) USING BTREE,
UNIQUE KEY `uk_class_student` (`class_id`, `student_id`, `tenant_id`),
KEY `idx_tenant_id` (`tenant_id`),
KEY `idx_student_id` (`student_id`),
KEY `idx_class_id` (`class_id`),
KEY `idx_relation_status` (`relation_status`),
KEY `idx_class_position` (`class_position`),
KEY `idx_join_time` (`join_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='班级学生关联表';
SET FOREIGN_KEY_CHECKS = 1;