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_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
功能用途
主要功能
- 学员课程关联: 建立学员与课程的关联关系
- 课时管理: 管理总课时数、赠送课时数及使用情况
- 课程周期管理: 管理课程的开始和结束日期
- 课时消耗跟踪: 跟踪已使用的正式课时和赠送课时
- 教练分配: 管理主教练和助教的分配
- 课程状态控制: 管理课程的有效性和状态变更
- 单次消课设置: 设置每次上课消耗的课时数量
- 教务管理: 关联教务人员进行课程管理
- 资源关联: 关联相关资源信息
业务场景
- 学员报名课程时创建课程关联记录
- 课时包购买和赠送课时分配
- 学员上课时进行课时消耗
- 教练排课和教学安排
- 课程到期提醒和续费管理
- 课程状态变更和延期处理
- 课时使用情况统计和分析
- 教务人员课程管理和监督
- 课程资源分配和调整
关联关系
主要关联表
- school_student: 通过student_id关联学员信息
- school_course: 通过course_id关联课程信息
- school_personnel: 通过main_coach_id关联主教练
- school_personnel: 通过assistant_ids关联助教
- school_personnel: 通过education_id关联教务人员
- school_attendance: 学员考勤记录关联
- school_schedule: 课程安排关联
- school_pay: 课程付费记录关联
- 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(创建时间查询)
注意事项
- 课时完整性: 总课时数必须等于已使用课时数加剩余课时数
- 状态一致性: 课程状态变更需要与实际情况保持一致
- 日期有效性: 开始日期不能晚于结束日期
- 教练有效性: 主教练和助教必须是有效的教练人员
- 课时消耗: 单次消课数量不能超过剩余课时
- 助教格式: assistant_ids字段存储逗号分隔的助教ID列表
- 过期处理: 课程到期后需要及时更新状态
- 数据同步: 课时使用情况需要与考勤记录保持同步
- 权限控制: 只有相关教练和教务人员可以操作
- 历史保留: 课程结束后数据需要保留用于统计分析
- 并发控制: 课时消耗操作需要防止并发冲突
- 赠送课时: 赠送课时的使用需要有明确的规则
- 延期处理: 课程延期需要更新结束日期和状态
- 资源管理: 课程资源的分配和回收需要及时处理
- 审计要求: 重要操作需要记录操作日志