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

school_contract 表文档

表概述

表名: school_contract
功能: 合同信息管理表,存储教务系统中所有学员合同的基本信息、课程关联、价格体系、课时管理等核心数据

字段说明

Field	Type	Collation	Null	Key	Default	Extra	Privileges	Comment
id	int	NULL	NO	PRI	NULL	auto_increment	select,insert,update,references	合同编号
contract_name	varchar(255)	utf8mb4_general_ci	NO		NULL		select,insert,update,references	合同名称
contract_template	text	utf8mb4_general_ci	NO		NULL		select,insert,update,references	合同模板
contract_content	longtext	utf8mb4_general_ci	YES		NULL		select,insert,update,references	合同内容(Word解析后的内容)
contract_status	varchar(50)	utf8mb4_general_ci	NO		NULL		select,insert,update,references	合同状态
contract_type	varchar(50)	utf8mb4_general_ci	NO		NULL		select,insert,update,references	合同类型
remarks	text	utf8mb4_general_ci	YES		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	int	NULL	NO		0		select,insert,update,references	逻辑删除时间
placeholder	text	utf8mb4_general_ci	YES		NULL		select,insert,update,references	占位符配置
placeholder_config	json	NULL	YES		NULL		select,insert,update,references	占位符配置
original_filename	varchar(255)	utf8mb4_general_ci	YES		NULL		select,insert,update,references	原始文件名
file_size	int	NULL	YES		0		select,insert,update,references	文件大小(字节)
file_hash	varchar(64)	utf8mb4_general_ci	YES		NULL		select,insert,update,references	文件hash值,用于防重复
placeholders	json	NULL	YES		NULL		select,insert,update,references	从模板中解析出的占位符列表

功能用途

主要功能

  1. 合同基础管理: 存储合同编号、名称、类型、状态等基本信息
  2. 学员关联管理: 通过member_id关联具体学员信息
  3. 课程关联管理: 通过course_id关联具体课程信息
  4. 价格体系管理: 管理合同总价、已付金额、优惠金额等财务信息
  5. 课时管理系统: 管理总课时、已消耗课时、剩余课时等课时信息
  6. 合同周期管理: 管理合同开始和结束时间
  7. 合同状态控制: 管理合同的各种状态(待审核、生效、暂停、结束等)
  8. 校区归属管理: 通过campus_id关联所属校区
  9. 销售跟踪管理: 记录销售人员和签约信息

业务场景

  1. 合同签署: 学员报名时创建合同,记录课程和价格信息
  2. 课时消耗: 学员上课时扣减合同中的剩余课时
  3. 财务结算: 根据合同进行学费收取和退费处理
  4. 合同变更: 修改合同内容、延期、转课等操作
  5. 课时预警: 当剩余课时不足时进行提醒
  6. 合同续费: 合同到期时进行续费操作
  7. 数据统计: 统计合同收入、课时消耗等业务数据
  8. 合同审核: 合同创建后的审核流程管理

关联关系

主要关联表

  1. school_member: 会员表(member_id字段关联)
  2. school_course: 课程表(course_id字段关联)
  3. school_campus: 校区表(campus_id字段关联)
  4. school_personnel: 人员表(销售人员关联)
  5. school_order: 订单表(合同支付关联)
  6. school_class_member: 班级学员表(合同对应班级)
  7. school_schedule: 排课表(课时消耗关联)
  8. school_refund: 退费表(合同退费关联)
  9. school_contract_log: 合同变更日志表
  10. school_payment: 付款记录表

关联说明

  1. 学员关联: 通过member_id与会员表关联,确定合同所属学员
  2. 课程关联: 通过course_id与课程表关联,确定合同对应的课程
  3. 校区关联: 通过campus_id关联校区,实现多校区合同管理
  4. 财务关联: 与订单、付款、退费等财务数据关联
  5. 教学关联: 与班级、排课等教学管理功能关联
  6. 销售关联: 记录销售人员的业绩和跟进情况

索引建议

  1. 主键索引: id(已存在)
  2. 外键索引:
    • member_id(学员关联查询)
    • course_id(课程关联查询)
    • campus_id(校区关联查询)
  3. 唯一索引:
    • contract_no(合同编号唯一)
  4. 普通索引:
    • contract_name(合同名称搜索)
    • status(状态筛选)
    • start_time(开始时间排序)
    • end_time(结束时间排序)
    • create_time(创建时间排序)
  5. 复合索引:
    • (member_id, status)(学员+状态查询)
    • (campus_id, status)(校区+状态查询)
    • (course_id, status)(课程+状态查询)
    • (status, end_time)(状态+到期时间查询)

注意事项

  1. 财务精度: 价格相关字段使用decimal类型,避免浮点数精度问题
  2. 课时逻辑: used_class_hour不能超过total_class_hour
  3. 时间逻辑: start_time不能晚于end_time
  4. 合同编号: contract_no需要保证全局唯一性
  5. 状态流转: 合同状态变更需要记录操作日志
  6. 软删除: 使用deleted_at字段实现软删除,保护历史数据
  7. 课时扣减: 课时消耗需要原子性操作,避免并发问题
  8. 合同变更: 重要字段变更需要审核流程
  9. 到期提醒: 需要定时任务检查合同到期情况
  10. 数据一致性: 合同删除时需要处理相关的课时、付款等数据
  11. 权限控制: 不同角色对合同的操作权限不同
  12. 审计追踪: 重要操作需要记录操作人和操作时间