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

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

功能用途

主要功能

  1. 班级基础管理: 存储班级名称、编号、类型、状态等基本信息
  2. 教练配置管理: 配置主教练(head_coach)和助理教练(assistant_coach)
  3. 课程关联管理: 通过course_id关联具体课程信息
  4. 学员容量管理: 设置班级最大学员数量限制
  5. 时间周期管理: 管理班级开始和结束时间
  6. 校区归属管理: 通过campus_id关联所属校区
  7. 班级状态控制: 管理班级的启用/禁用状态
  8. 排序展示管理: 通过sort字段控制班级显示顺序

业务场景

  1. 班级创建: 新建班级,配置基本信息和教练
  2. 学员报名: 学员选择班级进行课程学习
  3. 排课管理: 为班级安排具体的上课时间和地点
  4. 教练调配: 根据需要调整班级的主教练和助理教练
  5. 容量控制: 限制班级学员数量,避免超员
  6. 班级调整: 修改班级信息、合并或拆分班级
  7. 数据统计: 统计班级学员数量、课程进度等信息
  8. 校区管理: 不同校区的班级独立管理

关联关系

主要关联表

  1. school_course: 课程表(course_id字段关联)
  2. school_personnel: 人员表(head_coach, assistant_coach关联)
  3. school_campus: 校区表(campus_id字段关联)
  4. school_class_member: 班级学员关联表
  5. school_schedule: 排课表(班级排课关联)
  6. school_class_course: 班级课程关联表
  7. school_attendance: 考勤表(班级考勤统计)
  8. school_homework: 作业表(班级作业管理)

关联说明

  1. 课程关联: 通过course_id与课程表关联,确定班级所属课程
  2. 教练关联: head_coach和assistant_coach关联人员表,配置班级教练
  3. 校区关联: 通过campus_id关联校区,实现多校区班级管理
  4. 学员关联: 通过班级学员关联表管理班级内的学员
  5. 排课关联: 班级与排课表关联,安排具体上课时间
  6. 教学关联: 与考勤、作业等教学管理功能关联

索引建议

  1. 主键索引: id(已存在)
  2. 外键索引:
    • course_id(课程关联查询)
    • campus_id(校区关联查询)
    • head_coach(主教练查询)
    • assistant_coach(助理教练查询)
  3. 普通索引:
    • class_name(班级名称搜索)
    • class_type(班级类型筛选)
    • status(状态筛选)
    • sort(排序查询)
    • create_time(创建时间排序)
  4. 复合索引:
    • (campus_id, status)(校区+状态查询)
    • (course_id, status)(课程+状态查询)
    • (status, sort)(状态+排序查询)

注意事项

  1. 容量控制: max_students字段需要与实际报名人数进行校验
  2. 教练配置: 主教练和助理教练不能为同一人
  3. 时间逻辑: start_time不能晚于end_time
  4. 软删除: 使用deleted_at字段实现软删除,保护历史数据
  5. 状态管理: 班级状态变更需要考虑已报名学员的影响
  6. 课程关联: course_id变更需要验证课程的有效性
  7. 校区归属: campus_id变更需要考虑教练和学员的校区匹配
  8. 排序维护: sort字段需要保证在同一校区内的唯一性和连续性
  9. 教练权限: 教练只能管理自己负责的班级
  10. 数据一致性: 班级删除时需要处理相关的学员、排课等数据