-- 创建无人车违规事件表 -- 专门针对机场无人车冲突检测场景设计的简化表结构 -- 作者: AI Assistant -- 创建日期: 2025-01-17 -- 版本: 1.0 -- 如果表已存在则删除 DROP TABLE IF EXISTS uv_violation_events CASCADE; -- 创建无人车违规事件表 CREATE TABLE uv_violation_events ( -- 主键ID id BIGSERIAL PRIMARY KEY, -- 车辆ID(关联sys_vehicle_info.vehicle_id) vehicle_id BIGINT NOT NULL, -- 无人车车牌号(保留用于显示) vehicle_license VARCHAR(50), -- 违规规则名称 rule_name VARCHAR(100) NOT NULL, -- 违规类型(SPEED-超速, ACCESS-未授权进入, HEIGHT-超高, WEIGHT-超重) violation_type VARCHAR(50) NOT NULL CHECK (violation_type IN ('SPEED', 'ACCESS', 'HEIGHT', 'WEIGHT', 'OTHER')), -- 告警级别 alert_level VARCHAR(50) NOT NULL CHECK (alert_level IN ('INFO', 'WARNING', 'CRITICAL', 'EMERGENCY')), -- 违规描述 description VARCHAR(150), -- 违规位置(PostGIS几何点) location GEOMETRY(Point, 4326), -- 实际值(如实际速度:19.8) actual_value DOUBLE PRECISION, -- 限制值(如限速:5.0) limit_value DOUBLE PRECISION, -- 违规发生时间 violation_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, -- 记录创建时间 created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ); -- 创建索引以提高查询性能 CREATE INDEX idx_uv_violations_vehicle_id ON uv_violation_events(vehicle_id); CREATE INDEX idx_uv_violations_vehicle_license ON uv_violation_events(vehicle_license); CREATE INDEX idx_uv_violations_rule ON uv_violation_events(rule_name); CREATE INDEX idx_uv_violations_time ON uv_violation_events(violation_time); CREATE INDEX idx_uv_violations_type ON uv_violation_events(violation_type); CREATE INDEX idx_uv_violations_alert_level ON uv_violation_events(alert_level); -- 创建复合索引用于常见查询组合 CREATE INDEX idx_uv_violations_vehicle_id_time ON uv_violation_events(vehicle_id, violation_time DESC); CREATE INDEX idx_uv_violations_vehicle_license_time ON uv_violation_events(vehicle_license, violation_time DESC); CREATE INDEX idx_uv_violations_type_time ON uv_violation_events(violation_type, violation_time DESC); -- 如果启用了PostGIS,创建空间索引 CREATE INDEX idx_uv_violations_location ON uv_violation_events USING GIST(location); -- 添加表注释 COMMENT ON TABLE uv_violation_events IS '无人车违规事件表 - 专门记录机场无人车的各种违规行为'; COMMENT ON COLUMN uv_violation_events.id IS '主键ID,自增'; COMMENT ON COLUMN uv_violation_events.vehicle_id IS '车辆ID,关联sys_vehicle_info.vehicle_id,用于内部处理和查询优化'; COMMENT ON COLUMN uv_violation_events.vehicle_license IS '无人车车牌号,用于显示和业务标识,可为空'; COMMENT ON COLUMN uv_violation_events.rule_name IS '违规的规则名称'; COMMENT ON COLUMN uv_violation_events.violation_type IS '违规类型:SPEED超速/ACCESS未授权进入/HEIGHT超高/WEIGHT超重'; COMMENT ON COLUMN uv_violation_events.alert_level IS '告警级别:INFO信息/WARNING警告/CRITICAL严重/EMERGENCY紧急'; COMMENT ON COLUMN uv_violation_events.description IS '违规描述,如"超速: 19.8km/h"'; COMMENT ON COLUMN uv_violation_events.location IS '违规发生的地理位置(PostGIS Point)'; COMMENT ON COLUMN uv_violation_events.actual_value IS '实际测量值,如实际速度19.8'; COMMENT ON COLUMN uv_violation_events.limit_value IS '规则限制值,如限速5.0'; COMMENT ON COLUMN uv_violation_events.violation_time IS '违规发生的时间'; COMMENT ON COLUMN uv_violation_events.created_at IS '记录创建时间'; -- 显示表结构 \d uv_violation_events; -- 查询表中的数据 -- SELECT * FROM uv_violation_events ORDER BY violation_time DESC LIMIT 10;