40 lines
1.6 KiB
MySQL
40 lines
1.6 KiB
MySQL
|
|
-- B10: iot_project + iot_subsystem 表创建
|
|||
|
|
-- 版本: V2.0.2
|
|||
|
|
|
|||
|
|
CREATE TABLE IF NOT EXISTS iot_project (
|
|||
|
|
id BIGINT PRIMARY KEY AUTO_INCREMENT,
|
|||
|
|
name VARCHAR(128) NOT NULL,
|
|||
|
|
description TEXT,
|
|||
|
|
icon VARCHAR(256),
|
|||
|
|
status TINYINT NOT NULL DEFAULT 1,
|
|||
|
|
sort INT DEFAULT 0,
|
|||
|
|
tenant_id BIGINT NOT NULL,
|
|||
|
|
creator VARCHAR(64),
|
|||
|
|
create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|||
|
|
updater VARCHAR(64),
|
|||
|
|
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|||
|
|
deleted BIT NOT NULL DEFAULT b'0',
|
|||
|
|
UNIQUE KEY uk_name (name, tenant_id, deleted)
|
|||
|
|
) COMMENT='项目(架构预留,本期不开放 API)';
|
|||
|
|
|
|||
|
|
CREATE TABLE IF NOT EXISTS iot_subsystem (
|
|||
|
|
id BIGINT PRIMARY KEY AUTO_INCREMENT,
|
|||
|
|
name VARCHAR(128) NOT NULL,
|
|||
|
|
code VARCHAR(64) NOT NULL,
|
|||
|
|
description TEXT,
|
|||
|
|
icon VARCHAR(256),
|
|||
|
|
status TINYINT NOT NULL DEFAULT 1,
|
|||
|
|
sort INT DEFAULT 0,
|
|||
|
|
project_id BIGINT COMMENT '预留(允许 NULL)',
|
|||
|
|
config JSON,
|
|||
|
|
tenant_id BIGINT NOT NULL,
|
|||
|
|
creator VARCHAR(64),
|
|||
|
|
create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|||
|
|
updater VARCHAR(64),
|
|||
|
|
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|||
|
|
deleted BIT NOT NULL DEFAULT b'0',
|
|||
|
|
-- 【评审 A4】加 project_id 维度,MySQL NULL 不参与 UK 唯一性 → 应用层兜底
|
|||
|
|
UNIQUE KEY uk_name (name, tenant_id, project_id, deleted),
|
|||
|
|
UNIQUE KEY uk_code (code, tenant_id, project_id, deleted)
|
|||
|
|
) COMMENT='子系统';
|