-- pbl_validation 表 DDL(自动生成,与 apps/pbls/scripts/ddl/pbls_tables.sql 同源) CREATE TABLE IF NOT EXISTS `pbl_validation_rule` ( `tenant_id` VARCHAR(32) NOT NULL NOT NULL COMMENT 租户ID(强制打头), `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 主键, `code` VARCHAR(64) NOT NULL COMMENT "规则编码", `dimension` VARCHAR(64) NOT NULL COMMENT "维度", `title` VARCHAR(128) NOT NULL COMMENT "标题", `rule_json` LONGTEXT NULL COMMENT "规则体", `threshold_json` LONGTEXT NULL COMMENT "阈值(可配,Q-OPEN-8)", `severity` VARCHAR(64) NOT NULL COMMENT "严重度", `enabled` TINYINT(1) NOT NULL DEFAULT 0 COMMENT "启用", `version_no` INT NOT NULL DEFAULT 0 COMMENT "版本", `created_at` DATETIME NOT NULL DEFAULT '1970-01-01 00:00:00' COMMENT "创建时间(应用层写入)", `updated_at` DATETIME NOT NULL DEFAULT '1970-01-01 00:00:00' COMMENT "更新时间(应用层写入)", PRIMARY KEY (`id`), UNIQUE KEY `uk_vr_code` (`tenant_id`, `code`, `version_no`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT="校验规则(14 维,规则 JSON 形态 script_type=1)"; CREATE TABLE IF NOT EXISTS `pbl_validation_result` ( `tenant_id` VARCHAR(32) NOT NULL NOT NULL COMMENT 租户ID(强制打头), `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 主键, `blueprint_id` BIGINT UNSIGNED NOT NULL COMMENT "蓝图ID", `blueprint_version_no` INT NOT NULL DEFAULT 0 COMMENT "校验时版本", `dimension_count` INT NOT NULL DEFAULT 0 COMMENT "维度数(=14)", `passed_count` INT NOT NULL DEFAULT 0 COMMENT "通过数", `failed_count` INT NOT NULL DEFAULT 0 COMMENT "失败数", `score` DECIMAL(18,2) NOT NULL DEFAULT 0 COMMENT "得分", `quality_state` VARCHAR(64) NOT NULL COMMENT "质量状态", `findings_json` LONGTEXT NULL COMMENT "逐维结论", `rule_set_version` VARCHAR(64) NOT NULL COMMENT "规则集版本", `created_by` VARCHAR(32) NOT NULL COMMENT "触发人", `created_at` DATETIME NOT NULL DEFAULT '1970-01-01 00:00:00' COMMENT "创建时间(应用层写入)", `updated_at` DATETIME NOT NULL DEFAULT '1970-01-01 00:00:00' COMMENT "更新时间(应用层写入)", PRIMARY KEY (`id`), KEY `idx_vres_bp` (`tenant_id`, `blueprint_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT="校验结果(14 维 + 5 级质量状态)";