智慧教务系统
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

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的有效性,避免无效关联
  • 合理设置学员的加入和离开时间,确保时间逻辑正确
  • 及时更新学员状态,保持数据的准确性
  • 避免同一学员在同一时间段内重复加入同一班级

性能优化

  • 定期清理历史的学员关联记录
  • 合理使用索引提高查询效率
  • 避免频繁的学员状态变更操作
  • 对于大量学员的批量操作要注意性能影响

业务规则

  • 学员在同一时间只能属于一个班级(除非支持多班级学习)
  • 学员转班时需要正确处理原班级的离开时间和新班级的加入时间
  • 删除班级时需要妥善处理相关的学员关联记录
  • 临时学员和正式学员的管理规则可能不同,需要区别对待