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

school_venue 表文档

表概述

表名: school_venue
功能: 场地信息管理表,负责管理教务系统中的教学场地信息,包括场地容量、可用状态、时间安排等核心场地管理功能

字段说明

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
venue_name	varchar(255)	utf8mb4_general_ci	NO		NULL		select,insert,update,references	场地名称
capacity	int	NULL	NO		NULL		select,insert,update,references	场地可容纳人数上限
availability_status	tinyint(1)	NULL	NO		NULL		select,insert,update,references	场地可用状态: 1-可用, 0-不可用
time_range_type	enum('range','fixed','all')	utf8mb4_general_ci	NO		NULL		select,insert,update,references	场地可用时间范围类型: range-范围类型, fixed-固定时间范围类型
time_range_start	varchar(8)	utf8mb4_general_ci	YES		NULL		select,insert,update,references	范围类型的开始时间
time_range_end	varchar(8)	utf8mb4_general_ci	YES		NULL		select,insert,update,references	范围类型的结束时间
fixed_time_ranges	json	NULL	YES		NULL		select,insert,update,references	固定时间范围类型的可用时间, 存储为JSON数组
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	YES		0		select,insert,update,references	逻辑删除时间

功能用途

主要功能

  • 场地基础管理: 管理场地名称、容量等基本信息
  • 容量控制: 设置和管理场地的最大容纳人数限制
  • 可用状态管理: 控制场地的启用/禁用状态
  • 时间范围管理: 支持多种时间安排模式(范围型、固定型、全天型)
  • 灵活时间配置: 支持JSON格式的复杂时间段配置
  • 校区关联: 将场地归属到具体校区进行分类管理
  • 软删除机制: 保证场地数据的完整性和可追溯性

业务场景

  • 排课管理: 为课程安排提供可用场地选择
  • 场地预订: 支持场地的预订和冲突检查
  • 容量控制: 确保课程人数不超过场地容量限制
  • 时间管理: 根据场地可用时间安排课程时段
  • 资源优化: 合理分配和利用场地资源
  • 场地维护: 临时关闭场地进行维护和修缮
  • 多校区管理: 不同校区的场地独立管理
  • 使用统计: 分析场地使用率和效率

关联关系

主要关联表

  • school_campus: 校区信息表 (campus_id)
  • school_course_schedule: 课程安排表 (venue_id)
  • school_class: 班级信息表 (通过课程安排关联)
  • school_booking: 场地预订表 (venue_id)
  • school_maintenance: 场地维护表 (venue_id)
  • school_equipment: 设备管理表 (venue_id)

关联说明

  • 校区关联: campus_id确定场地所属校区,支持多校区管理
  • 排课关联: 通过course_schedule表关联具体的课程安排
  • 预订关联: 支持场地的预订和使用记录
  • 维护关联: 关联场地的维护和保养记录
  • 设备关联: 关联场地内的教学设备和设施

索引建议

  • 主键索引: id (已存在)
  • 外键索引: campus_id (校区场地查询)
  • 状态索引: availability_status (可用场地查询)
  • 时间类型索引: time_range_type (时间类型查询)
  • 软删除索引: deleted_at (有效场地查询)
  • 复合索引:
    • (campus_id, availability_status) (校区可用场地查询)
    • (availability_status, deleted_at) (有效可用场地查询)
    • (campus_id, deleted_at) (校区有效场地查询)
  • 容量索引: capacity (按容量查询场地)
  • 时间索引:
    • created_at (创建时间查询)
    • updated_at (更新时间查询)

注意事项

  • 容量限制: capacity必须大于0,表示场地的实际容纳能力
  • 状态一致性: availability_status和deleted_at需要保持逻辑一致性
  • 时间格式: time_range_start和time_range_end使用HH:MM格式(如09:00)
  • JSON验证: fixed_time_ranges字段需要验证JSON格式的正确性
  • 时间逻辑: time_range_end必须大于time_range_start
  • 时间类型: time_range_type决定了时间字段的使用方式
    • range: 使用time_range_start和time_range_end
    • fixed: 使用fixed_time_ranges JSON数组
    • all: 全天可用,忽略时间限制
  • 软删除: 删除场地时需要检查是否有未完成的课程安排
  • 校区关联: campus_id不能为空,每个场地必须归属于特定校区
  • 冲突检查: 安排课程时需要检查场地时间冲突
  • 容量控制: 课程人数不能超过场地容量限制
  • 维护状态: 场地维护期间应设置为不可用状态
  • 数据完整性: 修改场地信息时需要考虑对现有课程安排的影响
  • 权限控制: 场地管理需要适当的权限控制机制