79 lines
5.2 KiB
SQL
79 lines
5.2 KiB
SQL
-- pbl_compiler 表 DDL(自动生成,与 apps/pbls/scripts/ddl/pbls_tables.sql 同源)
|
||
CREATE TABLE IF NOT EXISTS `pbl_compiler_version` (
|
||
`tenant_id` VARCHAR(32) NOT NULL COMMENT 租户ID(强制打头),
|
||
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 主键,
|
||
`code` VARCHAR(64) NOT NULL COMMENT "版本编码",
|
||
`semver` VARCHAR(64) NOT NULL COMMENT "语义化版本",
|
||
`rules_hash` VARCHAR(32) NOT NULL COMMENT "规则集SHA256前缀",
|
||
`entrypoint` VARCHAR(64) NOT NULL COMMENT "入口函数",
|
||
`enabled` TINYINT(1) NOT NULL DEFAULT 0 COMMENT "启用",
|
||
`notes` TEXT 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`),
|
||
UNIQUE KEY `uk_cv_code` (`tenant_id`, `code`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT="编译器版本(29.6 确定性)";
|
||
|
||
CREATE TABLE IF NOT EXISTS `pbl_game_definition` (
|
||
`tenant_id` VARCHAR(32) NOT NULL COMMENT 租户ID(强制打头),
|
||
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 主键,
|
||
`blueprint_id` BIGINT UNSIGNED NOT NULL COMMENT "来源蓝图",
|
||
`blueprint_version_no` INT NOT NULL DEFAULT 0 COMMENT "蓝图版本",
|
||
`compiler_version_id` BIGINT UNSIGNED NOT NULL COMMENT "编译版本",
|
||
`content_fingerprint` VARCHAR(64) NOT NULL COMMENT "SHA-256 指纹",
|
||
`definition_json` LONGTEXT NULL COMMENT "Game Definition 正文",
|
||
`world_id` BIGINT UNSIGNED NOT NULL COMMENT "落库 world",
|
||
`scene_id` BIGINT UNSIGNED NOT NULL COMMENT "落库 scene",
|
||
`entity_count` INT NOT NULL DEFAULT 0 COMMENT "实体数",
|
||
`event_count` INT NOT NULL DEFAULT 0 COMMENT "事件数",
|
||
`quality_state` VARCHAR(64) NOT NULL COMMENT "编译时质量状态",
|
||
`duration_ms` 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_gd_fp` (`tenant_id`, `content_fingerprint`),
|
||
KEY `idx_gd_bp` (`tenant_id`, `blueprint_id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT="Game Definition(第9章 schema + 指纹)";
|
||
|
||
CREATE TABLE IF NOT EXISTS `pbl_capability_registry` (
|
||
`tenant_id` VARCHAR(32) NOT NULL COMMENT 租户ID(强制打头),
|
||
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 主键,
|
||
`capability_key` VARCHAR(64) NOT NULL COMMENT "能力键",
|
||
`category` VARCHAR(64) NOT NULL COMMENT "分类",
|
||
`args_schema_json` LONGTEXT NULL COMMENT "参数JSON Schema",
|
||
`permission_required` VARCHAR(64) NOT NULL COMMENT "所需权限",
|
||
`is_enabled` TINYINT(1) NOT NULL DEFAULT 0 COMMENT "启用",
|
||
`version_no` INT NOT NULL DEFAULT 0 COMMENT "版本",
|
||
`description` TEXT 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`),
|
||
UNIQUE KEY `uk_cap_key` (`tenant_id`, `capability_key`, `version_no`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT="Capability Registry(第11章缺口补齐)";
|
||
|
||
CREATE TABLE IF NOT EXISTS `pbl_compile_task` (
|
||
`tenant_id` VARCHAR(64) NOT NULL COMMENT 租户ID(强制打头),
|
||
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 主键,
|
||
`task_no` VARCHAR(64) NOT NULL COMMENT "任务流水号(确定性派生 CT+blueprint_id+version+seq)",
|
||
`blueprint_id` BIGINT UNSIGNED NOT NULL COMMENT "蓝图ID",
|
||
`blueprint_version` INT NOT NULL DEFAULT 0 COMMENT "蓝图版本(须已审批)",
|
||
`compiler_version` VARCHAR(32) NOT NULL COMMENT "编译器版本号",
|
||
`ruleset_version` VARCHAR(32) NOT NULL COMMENT "规则集版本",
|
||
`status` VARCHAR(32) NOT NULL DEFAULT 'pending' COMMENT "appcodes:pbl_compile_status(pending/running/success/failed)",
|
||
`approval_id` BIGINT UNSIGNED NULL COMMENT "关联审批记录(未审批拒绝 F-CP-01)",
|
||
`game_def_id` BIGINT UNSIGNED NULL COMMENT "产出的 Game Definition ID(success 回填)",
|
||
`content_fingerprint` VARCHAR(64) NULL COMMENT "产物 SHA-256 指纹(success 回填,US-11 比对锚点)",
|
||
`error_code` VARCHAR(64) NULL COMMENT "失败错误码(PBL_E_*)",
|
||
`error_msg` VARCHAR(2048) NULL COMMENT "失败原因(fail-closed 可追溯)",
|
||
`triggered_by` VARCHAR(64) NULL COMMENT "触发人(审计)",
|
||
`duration_ms` INT NOT NULL DEFAULT 0 COMMENT "耗时(易变,不参与指纹)",
|
||
`started_at` DATETIME NULL COMMENT "开始时间",
|
||
`finished_at` DATETIME 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`),
|
||
UNIQUE KEY `uk_ct_task_no` (`tenant_id`, `task_no`),
|
||
KEY `idx_ct_blueprint` (`tenant_id`, `blueprint_id`, `blueprint_version`),
|
||
KEY `idx_ct_status` (`tenant_id`, `status`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT="编译任务(approval_id 门禁,F-CP-01/US-10)";
|