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.1 KiB
5.1 KiB
school_class 表文档
表概述
表名: school_class
功能: 班级信息管理表,存储教务系统中所有班级的基本信息、教练配置、课程关联、学员管理等核心数据
字段说明
Field Type Collation Null Key Default Extra Privileges Comment
id int NULL NO PRI NULL auto_increment select,insert,update,references 班级编号
campus_id int NULL NO NULL select,insert,update,references 校区ID
campus_name varchar(255) utf8mb4_general_ci NO NULL select,insert,update,references 校区名称
class_name varchar(255) utf8mb4_general_ci NO NULL select,insert,update,references 班级名称
head_coach varchar(255) utf8mb4_general_ci NO NULL select,insert,update,references 班级主教练
age_group varchar(255) utf8mb4_general_ci NO NULL select,insert,update,references 班级授课年龄段
class_type varchar(255) utf8mb4_general_ci NO NULL select,insert,update,references 班级类型
assistant_coach varchar(255) utf8mb4_general_ci NO NULL select,insert,update,references 班级助教
created_at timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED select,insert,update,references 创建时间
updated_at timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED on update CURRENT_TIMESTAMP select,insert,update,references 修改时间
deleted_at varchar(255) utf8mb4_general_ci YES 0 select,insert,update,references 逻辑删除时间
status tinyint NULL YES 1 select,insert,update,references 班级状态(1开启 2关闭)
sort_order int NULL NO NULL select,insert,update,references 班级排序
remarks text utf8mb4_general_ci YES NULL select,insert,update,references 班级备注
educational_id int NULL NO 0 select,insert,update,references 教务id
功能用途
主要功能
- 班级基础管理: 存储班级名称、编号、类型、状态等基本信息
- 教练配置管理: 配置主教练(head_coach)和助理教练(assistant_coach)
- 课程关联管理: 通过course_id关联具体课程信息
- 学员容量管理: 设置班级最大学员数量限制
- 时间周期管理: 管理班级开始和结束时间
- 校区归属管理: 通过campus_id关联所属校区
- 班级状态控制: 管理班级的启用/禁用状态
- 排序展示管理: 通过sort字段控制班级显示顺序
业务场景
- 班级创建: 新建班级,配置基本信息和教练
- 学员报名: 学员选择班级进行课程学习
- 排课管理: 为班级安排具体的上课时间和地点
- 教练调配: 根据需要调整班级的主教练和助理教练
- 容量控制: 限制班级学员数量,避免超员
- 班级调整: 修改班级信息、合并或拆分班级
- 数据统计: 统计班级学员数量、课程进度等信息
- 校区管理: 不同校区的班级独立管理
关联关系
主要关联表
- school_course: 课程表(course_id字段关联)
- school_personnel: 人员表(head_coach, assistant_coach关联)
- school_campus: 校区表(campus_id字段关联)
- school_class_member: 班级学员关联表
- school_schedule: 排课表(班级排课关联)
- school_class_course: 班级课程关联表
- school_attendance: 考勤表(班级考勤统计)
- school_homework: 作业表(班级作业管理)
关联说明
- 课程关联: 通过course_id与课程表关联,确定班级所属课程
- 教练关联: head_coach和assistant_coach关联人员表,配置班级教练
- 校区关联: 通过campus_id关联校区,实现多校区班级管理
- 学员关联: 通过班级学员关联表管理班级内的学员
- 排课关联: 班级与排课表关联,安排具体上课时间
- 教学关联: 与考勤、作业等教学管理功能关联
索引建议
- 主键索引: id(已存在)
- 外键索引:
- course_id(课程关联查询)
- campus_id(校区关联查询)
- head_coach(主教练查询)
- assistant_coach(助理教练查询)
- 普通索引:
- class_name(班级名称搜索)
- class_type(班级类型筛选)
- status(状态筛选)
- sort(排序查询)
- create_time(创建时间排序)
- 复合索引:
- (campus_id, status)(校区+状态查询)
- (course_id, status)(课程+状态查询)
- (status, sort)(状态+排序查询)
注意事项
- 容量控制: max_students字段需要与实际报名人数进行校验
- 教练配置: 主教练和助理教练不能为同一人
- 时间逻辑: start_time不能晚于end_time
- 软删除: 使用deleted_at字段实现软删除,保护历史数据
- 状态管理: 班级状态变更需要考虑已报名学员的影响
- 课程关联: course_id变更需要验证课程的有效性
- 校区归属: campus_id变更需要考虑教练和学员的校区匹配
- 排序维护: sort字段需要保证在同一校区内的唯一性和连续性
- 教练权限: 教练只能管理自己负责的班级
- 数据一致性: 班级删除时需要处理相关的学员、排课等数据