-- pbl_kdb_ext 表 DDL(自动生成,与 apps/pbls/scripts/ddl/pbls_tables.sql 同源) CREATE TABLE IF NOT EXISTS `pbl_kdb_item` ( `tenant_id` VARCHAR(32) NOT NULL NOT NULL COMMENT 租户ID(强制打头), `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 主键, `code` VARCHAR(64) NOT NULL COMMENT "条目编码", `item_type` VARCHAR(64) NOT NULL COMMENT "类型", `title` VARCHAR(128) NOT NULL COMMENT "标题", `summary_txt` TEXT NULL COMMENT "摘要", `payload_json` LONGTEXT NULL COMMENT "内容(无向量,Q-OPEN-5)", `source` VARCHAR(64) NOT NULL COMMENT "来源", `is_write_locked` TINYINT(1) NOT NULL DEFAULT 0 COMMENT "写锁(恒1)", `status` VARCHAR(64) NOT NULL 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_kdb_code` (`tenant_id`, `code`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT="KDB 条目(建表不写入,is_write_locked 恒 1)"; CREATE TABLE IF NOT EXISTS `pbl_kdb_query_log` ( `tenant_id` VARCHAR(32) NOT NULL NOT NULL COMMENT 租户ID(强制打头), `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 主键, `query_uid` VARCHAR(32) NOT NULL COMMENT "查询UID", `caller_type` VARCHAR(64) NOT NULL COMMENT "调用方类型", `caller_id` VARCHAR(32) NOT NULL COMMENT "调用方", `query_json` LONGTEXT NULL COMMENT "查询条件", `hit_count` INT NOT NULL DEFAULT 0 COMMENT "命中数", `latency_ms` INT NOT NULL DEFAULT 0 COMMENT "时延", `ok` TINYINT(1) 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_kql_uid` (`tenant_id`, `query_uid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT="KDB 检索日志(只读侧留痕)";