# school_course 表文档 ## 表概述 **表名**: school_course **功能**: 课程信息管理表,存储教务系统中所有课程的基本信息、价格体系、课时配置、提醒设置等核心数据 ## 字段说明 ``` Field Type Collation Null Key Default Extra Privileges Comment id int NULL NO PRI NULL auto_increment select,insert,update,references 课程编号 course_name varchar(255) utf8mb4_general_ci NO NULL select,insert,update,references 课程名称 course_type varchar(255) utf8mb4_general_ci NO NULL select,insert,update,references 课程类型 duration int NULL NO NULL select,insert,update,references 课程时长 session_count int NULL NO NULL select,insert,update,references 课时数量 single_session_count int NULL NO 0 select,insert,update,references 单次消课数量 gift_session_count int NULL NO 0 select,insert,update,references 赠送课时数量 price decimal(10,2) NULL NO NULL select,insert,update,references 课程价格 internal_reminder int NULL YES NULL select,insert,update,references 内部提醒课时 customer_reminder int NULL YES NULL select,insert,update,references 客户提醒课时 remarks text utf8mb4_general_ci YES NULL select,insert,update,references 课程备注 created_at int NULL YES 0 select,insert,update,references 创建时间 updated_at int NULL YES 0 select,insert,update,references 更新时间 deleted_at int NULL YES 0 select,insert,update,references 逻辑删除时间 contract_id int NULL YES NULL select,insert,update,references 合同 id status tinyint NULL YES 1 select,insert,update,references 课程状态 1 有效 0 无效 is_regular_course tinyint NULL YES 1 select,insert,update,references 是否为正式课 1 是 0 否 ``` ## 功能用途 ### 主要功能 1. **课程基础管理**: 存储课程名称、类型、时长等基本信息 2. **课时体系管理**: 管理总课时数、单次消课数、赠送课时等 3. **价格体系管理**: 设置课程价格,支持灵活定价策略 4. **提醒机制管理**: 内部提醒和客户提醒的课时阈值设置 5. **课程状态管理**: 控制课程的有效性和可用性 6. **正式课程标识**: 区分正式课程和体验课程 7. **合同关联管理**: 与合同模板进行关联绑定 ### 业务场景 1. **课程创建**: 新课程录入,设置基本信息和价格体系 2. **课程销售**: 销售人员根据课程信息进行推广销售 3. **课时消耗**: 学员上课时按照单次消课数扣减课时 4. **库存预警**: 根据提醒阈值进行课时不足预警 5. **财务结算**: 基于课程价格进行收费和分成计算 6. **合同生成**: 选择课程后自动关联对应的合同模板 7. **数据分析**: 课程销售情况、受欢迎程度等数据统计 ## 关联关系 ### 主要关联表 1. **school_contract**: 合同表(contract_id字段关联) 2. **school_order**: 订单表(课程购买记录) 3. **school_course_member**: 会员课程关联表 4. **school_class_course**: 班级课程关联表 5. **school_schedule**: 排课表(课程安排) 6. **school_course_category**: 课程分类表 7. **school_teacher_course**: 教师课程关联表 8. **school_campus_course**: 校区课程关联表 ### 关联说明 1. **合同关联**: 通过contract_id与合同模板关联,支持自动合同生成 2. **销售关联**: 与订单表关联,记录课程销售情况 3. **教学关联**: 与班级、排课表关联,实现课程教学安排 4. **人员关联**: 与会员、教师表关联,管理课程参与者 5. **校区关联**: 支持多校区课程管理和独立定价 6. **分类关联**: 通过课程分类实现课程体系化管理 ## 索引建议 1. **主键索引**: id(已存在) 2. **外键索引**: - contract_id(合同关联查询) 3. **普通索引**: - course_type(课程类型筛选) - status(状态筛选) - is_regular_course(正式课程筛选) - created_at(创建时间排序) - price(价格范围查询) 4. **复合索引**: - (status, course_type)(状态+类型查询) - (is_regular_course, status)(正式课程+状态查询) 5. **全文索引**: - course_name(课程名称搜索) ## 注意事项 1. **课时逻辑**: session_count必须大于0,single_session_count不能超过总课时 2. **价格精度**: price字段使用decimal(10,2)确保财务精度 3. **软删除**: 使用deleted_at字段实现软删除,保护历史数据 4. **状态管理**: status字段变更需要同步更新相关业务数据 5. **提醒阈值**: 提醒课时数应小于总课时数,避免逻辑错误 6. **合同关联**: contract_id变更需要验证合同模板的有效性 7. **赠送课时**: gift_session_count需要在业务逻辑中正确处理 8. **正式课标识**: is_regular_course影响计费和统计逻辑