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