纳入范围: - backend/ Spring Boot 多模块后端(iot-common/device/rule/data/alarm/auth) - frontend/admin/ Vue3 + Element Plus 管理后台 - Android/ 涂鸦原生 APP (com.xhai.iot) - backend/sql/ Flyway 风格迁移脚本(V2~V21) - docs/ 对接文档与设计文档 排除范围: - 构建产物: node_modules/ target/ build/ dist/ .gradle/ - 签名密钥: *.jks *.keystore (严禁入库) - 本机配置: Android/local.properties - 运行日志: logs/ *.log - AI 协作本地数据 .codebuddy/ 与第三方 demo tuya-demo/ .gitattributes 统一以 LF 存储, Windows 批处理保留 CRLF
16 lines
1.3 KiB
SQL
16 lines
1.3 KiB
SQL
-- V15: 设备动态(操控记录)增强 —— 平台无关事件模型 + 确定性去重 + 语义化支撑
|
||
-- 背景:device_activity_log 原有字段无法表达"平台/事件类型/物模型功能点",
|
||
-- 去重只能靠 8 秒查重(启发式)。本次补齐字段并引入唯一去重键。
|
||
|
||
ALTER TABLE device_activity_log
|
||
ADD COLUMN platform varchar(32) DEFAULT NULL COMMENT '平台标识: tuya/mi/huawei/matter/local' AFTER device_name,
|
||
ADD COLUMN event_type varchar(16) DEFAULT 'state' COMMENT '事件类型: control/state/online/offline/alarm' AFTER action,
|
||
ADD COLUMN dp_code varchar(64) DEFAULT NULL COMMENT '物模型功能点编码(平台无关语义key, 如 switch_1)' AFTER event_type,
|
||
ADD COLUMN value_text varchar(128) DEFAULT NULL COMMENT '归一化后的值文本(如 true / 60% / cold)' AFTER dp_code,
|
||
ADD COLUMN command_id varchar(64) DEFAULT NULL COMMENT '控制回执配对ID(去重用)' AFTER value_text,
|
||
ADD COLUMN dedupe_key varchar(128) DEFAULT NULL COMMENT '确定性去重键(NULL不参与唯一性)' AFTER command_id,
|
||
ADD COLUMN raw json DEFAULT NULL COMMENT '原始平台报文(审计/排查)' AFTER detail;
|
||
|
||
-- 确定性去重:重复写入被唯一索引拦截,不再依赖时序查重
|
||
ALTER TABLE device_activity_log ADD UNIQUE KEY uk_activity_dedupe (dedupe_key);
|