# 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不能为空,每个场地必须归属于特定校区 - **冲突检查**: 安排课程时需要检查场地时间冲突 - **容量控制**: 课程人数不能超过场地容量限制 - **维护状态**: 场地维护期间应设置为不可用状态 - **数据完整性**: 修改场地信息时需要考虑对现有课程安排的影响 - **权限控制**: 场地管理需要适当的权限控制机制