You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
5.4 KiB
5.4 KiB
school_class_resources_rel 表文档
表概述
表名: school_class_resources_rel
功能: 班级学员关联表,用于管理班级与学员之间的多对多关联关系,支持正式学员和临时学员的分类管理,记录学员在班级中的加入时间、离开时间和状态变化,为班级学员管理、学籍管理和学员流动追踪提供完整的数据支持
字段说明
Field Type Collation Null Key Default Extra Privileges Comment
id int NULL NO PRI NULL auto_increment select,insert,update,references
class_id int NULL NO NULL select,insert,update,references 班级id
resource_id int NULL YES NULL select,insert,update,references 资源id
campus_id int NULL YES NULL select,insert,update,references 校区id
source_id int NULL YES NULL select,insert,update,references 数据id
source_type varchar(255) utf8mb4_general_ci YES NULL select,insert,update,references 数据资源类型student是学员,temporary是非正式学员
join_time int NULL YES NULL select,insert,update,references 加入时间
out_time int NULL YES NULL select,insert,update,references 离开时间
status tinyint NULL YES NULL select,insert,update,references 状态1新入2续费3过期4转班5转校
create_time timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED select,insert,update,references 创建时间
update_time timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED on update CURRENT_TIMESTAMP select,insert,update,references 更新时间
功能用途
主要功能
- 班级学员关联: 建立班级与学员之间的多对多关联关系
- 学员类型管理: 通过source_type区分正式学员(student)和临时学员(temporary)
- 学员状态跟踪: 管理学员在班级中的状态(新入、续费、过期、转班、转校)
- 时间周期管理: 记录学员加入和离开班级的具体时间
- 校区关联管理: 关联学员所属的校区信息
- 学员流动追踪: 完整记录学员在不同班级间的流动历史
- 学籍状态管理: 管理学员的学籍状态和变更记录
- 多校区支持: 支持学员在不同校区间的转移和管理
- 数据源追踪: 通过source_id字段追踪学员数据的来源
业务场景
- 学员报名入班: 新学员报名后分配到相应的班级
- 学员续费管理: 学员续费后更新在班级中的状态
- 学员转班操作: 学员因各种原因需要转到其他班级
- 学员转校管理: 学员在不同校区间的转移管理
- 学员退学处理: 学员退学时更新离开时间和状态
- 试听学员管理: 临时学员的试听课程管理
- 班级人数统计: 统计各班级的学员人数和构成
- 学员流动分析: 分析学员在不同班级间的流动情况
- 学籍状态查询: 查询学员的当前学籍状态和历史记录
- 收费管理: 根据学员在班级的状态进行收费管理
关联关系
主要关联
- school_class: 关联班级信息,获取班级基本信息、课程信息和状态
- school_member: 通过source_id关联学员信息,获取学员基本资料
- school_campus: 关联校区信息,支持多校区学员管理
间接关联
- school_course: 通过班级关联课程信息,了解学员所学课程
- school_personnel: 通过班级关联教师信息,了解学员的任课教师
- school_contract: 通过学员关联合同信息,管理学员的合同状态
- school_pay: 通过学员关联缴费信息,管理学员的缴费状态
- school_attendance: 关联考勤记录,跟踪学员的出勤情况
- school_grade: 关联成绩记录,跟踪学员的学习成绩
索引建议
主要索引
-- 班级学员查询索引
CREATE INDEX idx_class_student_class_id ON school_class_resources_rel(class_id);
-- 学员班级查询索引
CREATE INDEX idx_class_student_source ON school_class_resources_rel(source_type, source_id);
-- 校区学员查询索引
CREATE INDEX idx_class_student_campus_id ON school_class_resources_rel(campus_id);
-- 状态查询索引
CREATE INDEX idx_class_student_status ON school_class_resources_rel(status);
复合索引
-- 班级状态复合索引
CREATE INDEX idx_class_student_class_status ON school_class_resources_rel(class_id, status);
-- 学员状态复合索引
CREATE INDEX idx_class_student_source_status ON school_class_resources_rel(source_type, source_id, status);
-- 时间范围查询索引
CREATE INDEX idx_class_student_time_range ON school_class_resources_rel(join_time, leave_time);
-- 校区班级复合索引
CREATE INDEX idx_class_student_campus_class ON school_class_resources_rel(campus_id, class_id);
注意事项
数据完整性
- 确保class_id和source_id的有效性,避免无效关联
- 合理设置学员的加入和离开时间,确保时间逻辑正确
- 及时更新学员状态,保持数据的准确性
- 避免同一学员在同一时间段内重复加入同一班级
性能优化
- 定期清理历史的学员关联记录
- 合理使用索引提高查询效率
- 避免频繁的学员状态变更操作
- 对于大量学员的批量操作要注意性能影响
业务规则
- 学员在同一时间只能属于一个班级(除非支持多班级学习)
- 学员转班时需要正确处理原班级的离开时间和新班级的加入时间
- 删除班级时需要妥善处理相关的学员关联记录
- 临时学员和正式学员的管理规则可能不同,需要区别对待