智慧教务系统
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_student_courses 表文档

表概述

表名: school_student_courses
功能: 学员课程关联表,负责管理学员与课程的关联关系,包括课时管理、使用情况跟踪、教练分配等核心功能

字段说明

Field	Type	Collation	Null	Key	Default	Extra	Privileges	Comment
id	int	NULL	NO	PRI	NULL	auto_increment	select,insert,update,references	记录编号
student_id	int	NULL	NO	MUL	NULL		select,insert,update,references	学员ID
course_id	int	NULL	NO		NULL		select,insert,update,references	课程ID
total_hours	int	NULL	NO		NULL		select,insert,update,references	总正式课时数
gift_hours	int	NULL	YES		0		select,insert,update,references	赠送课时数
start_date	date	NULL	NO		NULL		select,insert,update,references	课程开始日期
end_date	date	NULL	NO		NULL		select,insert,update,references	课程结束日期
use_total_hours	int	NULL	NO		0		select,insert,update,references	已使用课包课时数
use_gift_hours	int	NULL	NO		0		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	修改时间
single_session_count	int	NULL	YES		NULL		select,insert,update,references	单次消课数量
status	tinyint(1)	NULL	YES		NULL		select,insert,update,references	课程状态1有效2过期3等待期4延期
resource_id	int	NULL	YES		NULL		select,insert,update,references	资源ID
main_coach_id	int	NULL	YES		NULL		select,insert,update,references	主教练ID
assistant_ids	varchar(255)	utf8mb4_general_ci	YES		NULL		select,insert,update,references	助教ID列表(逗号分隔)
education_id	int	NULL	YES		NULL		select,insert,update,references	教务ID

功能用途

主要功能

  1. 学员课程关联: 建立学员与课程的关联关系
  2. 课时管理: 管理总课时数、赠送课时数及使用情况
  3. 课程周期管理: 管理课程的开始和结束日期
  4. 课时消耗跟踪: 跟踪已使用的正式课时和赠送课时
  5. 教练分配: 管理主教练和助教的分配
  6. 课程状态控制: 管理课程的有效性和状态变更
  7. 单次消课设置: 设置每次上课消耗的课时数量
  8. 教务管理: 关联教务人员进行课程管理
  9. 资源关联: 关联相关资源信息

业务场景

  • 学员报名课程时创建课程关联记录
  • 课时包购买和赠送课时分配
  • 学员上课时进行课时消耗
  • 教练排课和教学安排
  • 课程到期提醒和续费管理
  • 课程状态变更和延期处理
  • 课时使用情况统计和分析
  • 教务人员课程管理和监督
  • 课程资源分配和调整

关联关系

主要关联表

  1. school_student: 通过student_id关联学员信息
  2. school_course: 通过course_id关联课程信息
  3. school_personnel: 通过main_coach_id关联主教练
  4. school_personnel: 通过assistant_ids关联助教
  5. school_personnel: 通过education_id关联教务人员
  6. school_attendance: 学员考勤记录关联
  7. school_schedule: 课程安排关联
  8. school_pay: 课程付费记录关联
  9. school_contract: 课程合同关联

关联说明

  • 学员关联: student_id关联学员基本信息和学习状态
  • 课程关联: course_id关联课程详细信息和课程设置
  • 教练关联: main_coach_id关联主教练,assistant_ids关联多个助教
  • 教务关联: education_id关联负责的教务人员
  • 资源关联: resource_id关联相关教学资源
  • 考勤关联: 与考勤表关联跟踪上课情况
  • 排课关联: 与排课表关联管理课程安排
  • 付费关联: 与付费记录关联课程购买情况

索引建议

  • 主键索引: id(已存在)
  • 外键索引: student_id(学员课程查询)
  • 业务索引:
    • course_id(课程学员查询)
    • main_coach_id(教练课程查询)
    • education_id(教务课程查询)
    • status(状态查询)
  • 复合索引:
    • (student_id, status)(学员有效课程查询)
    • (course_id, status)(课程有效学员查询)
    • (main_coach_id, status)(教练有效课程查询)
    • (start_date, end_date)(课程周期查询)
  • 时间索引:
    • start_date(开始时间查询)
    • end_date(结束时间查询)
    • created_at(创建时间查询)

注意事项

  1. 课时完整性: 总课时数必须等于已使用课时数加剩余课时数
  2. 状态一致性: 课程状态变更需要与实际情况保持一致
  3. 日期有效性: 开始日期不能晚于结束日期
  4. 教练有效性: 主教练和助教必须是有效的教练人员
  5. 课时消耗: 单次消课数量不能超过剩余课时
  6. 助教格式: assistant_ids字段存储逗号分隔的助教ID列表
  7. 过期处理: 课程到期后需要及时更新状态
  8. 数据同步: 课时使用情况需要与考勤记录保持同步
  9. 权限控制: 只有相关教练和教务人员可以操作
  10. 历史保留: 课程结束后数据需要保留用于统计分析
  11. 并发控制: 课时消耗操作需要防止并发冲突
  12. 赠送课时: 赠送课时的使用需要有明确的规则
  13. 延期处理: 课程延期需要更新结束日期和状态
  14. 资源管理: 课程资源的分配和回收需要及时处理
  15. 审计要求: 重要操作需要记录操作日志