iotsaas/backend/sql/V15__device_activity_enrich.sql
2995840376 0ce191c448 chore: 初始化 iotsaas 版本库基线
纳入范围:
- 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
2026-10-27 12:00:41 +08:00

16 lines
1.3 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- 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);