iotsaas/backend/sql/V9__add_scene.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

41 lines
2.1 KiB
SQL

-- V9: 新增场景(Scene)模型
-- 场景是"一组联动规则"的容器/编排,支持"一键执行"和"自动化联动"两类。
-- 一个场景下可关联多条规则(linkage_rule.scene_id),规则表已有完整能力。
-- 1. 新增场景表
CREATE TABLE IF NOT EXISTS scene (
id BIGINT NOT NULL AUTO_INCREMENT COMMENT '场景ID',
scene_name VARCHAR(128) NOT NULL COMMENT '场景名称',
scene_code VARCHAR(64) DEFAULT NULL COMMENT '场景编码(可选唯一)',
scene_type VARCHAR(16) DEFAULT 'automation' COMMENT '场景类型: one_click-一键执行 / automation-自动化联动',
icon VARCHAR(255) DEFAULT NULL COMMENT '场景图标URL',
description VARCHAR(512) DEFAULT NULL COMMENT '场景描述',
enabled TINYINT DEFAULT 1 COMMENT '是否启用(0-禁用,1-启用)',
sort_order INT DEFAULT 0 COMMENT '排序',
tenant_id BIGINT DEFAULT NULL COMMENT '租户ID',
owner_id BIGINT DEFAULT 0 COMMENT '场景归属用户ID(member.id), 0表示公共场景',
create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
deleted TINYINT DEFAULT 0 COMMENT '逻辑删除(0-正常,1-删除)',
create_by BIGINT DEFAULT NULL COMMENT '创建人',
update_by BIGINT DEFAULT NULL COMMENT '更新人',
PRIMARY KEY (id),
UNIQUE KEY uk_scene_code (scene_code),
KEY idx_scene_owner (owner_id),
KEY idx_scene_type (scene_type),
KEY idx_scene_enabled (enabled)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='场景表';
-- 2. linkage_rule 关联场景
ALTER TABLE linkage_rule
ADD COLUMN scene_id BIGINT DEFAULT NULL COMMENT '所属场景ID(空表示独立规则)' AFTER id;
ALTER TABLE linkage_rule
ADD COLUMN description VARCHAR(512) DEFAULT NULL COMMENT '规则描述' AFTER rule_name;
ALTER TABLE linkage_rule
ADD COLUMN priority INT DEFAULT 0 COMMENT '规则优先级(高者优先)' AFTER enabled;
ALTER TABLE linkage_rule
ADD KEY idx_rule_scene (scene_id);