Files
aiot-platform-cloud/sql/mysql/aiot_ops_traffic_statistics.sql

29 lines
1.7 KiB
MySQL
Raw Normal View History

-- Ops 模块:客流统计小时汇总表
-- 用于业务报表统计,数据来源于 IoT 设备的客流计数器
-- 每小时由 Ops 的 TrafficStatisticsPersistJob 从 Redis 持久化到 MySQL
CREATE TABLE IF NOT EXISTS `ops_traffic_statistics` (
`id` BIGINT AUTO_INCREMENT PRIMARY KEY,
`device_id` BIGINT NOT NULL COMMENT '设备ID数据来源',
`area_id` BIGINT NOT NULL COMMENT '区域ID主查询维度',
`stat_hour` DATETIME NOT NULL COMMENT '统计小时(精确到小时,如 2026-02-03 10:00:00',
`people_in` INT NOT NULL DEFAULT 0 COMMENT '进入人数',
`people_out` INT NOT NULL DEFAULT 0 COMMENT '离开人数',
`tenant_id` BIGINT NOT NULL DEFAULT 0 COMMENT '租户ID',
`creator` VARCHAR(64) DEFAULT '' COMMENT '创建者',
`create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updater` VARCHAR(64) DEFAULT '' COMMENT '更新者',
`update_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`deleted` BIT(1) NOT NULL DEFAULT 0 COMMENT '是否删除',
-- 唯一约束:同一设备、同一小时、同一租户,只有一条记录
UNIQUE KEY `uk_device_hour_tenant` (`device_id`, `stat_hour`, `tenant_id`, `deleted`),
-- 区域+小时索引:用于按区域统计客流
INDEX `idx_area_hour` (`area_id`, `stat_hour`),
-- 设备+小时索引:用于按设备查询历史
INDEX `idx_device_hour` (`device_id`, `stat_hour`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='客流统计小时汇总表Ops业务统计';