approve: [M3a] pbl_compiler 编译核心与确定性产物
This commit is contained in:
parent
d9cd9a4221
commit
0f1cad86c3
@ -35,7 +35,7 @@ CREATE TABLE IF NOT EXISTS pbl_tenant (
|
||||
UNIQUE KEY uk_pbl_tenant_code (tenant_id, tenant_code),
|
||||
KEY idx_pbl_tenant_tid_status (tenant_id, status),
|
||||
KEY idx_pbl_tenant_tid_org (tenant_id, org_code)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='PBL 租户主表';
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='PBL 租户主表';
|
||||
|
||||
-- 2. pbl_role_binding 租户内角色绑定(复用 rbac,不改 rbac 基表)
|
||||
CREATE TABLE IF NOT EXISTS pbl_role_binding (
|
||||
@ -58,7 +58,7 @@ CREATE TABLE IF NOT EXISTS pbl_role_binding (
|
||||
KEY idx_pbl_role_binding_tid_user (tenant_id, user_code, status),
|
||||
KEY idx_pbl_role_binding_tid_scope (tenant_id, scope_type, scope_code),
|
||||
KEY idx_pbl_role_binding_tid_role (tenant_id, role_code)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='PBL 租户角色绑定';
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='PBL 租户角色绑定';
|
||||
|
||||
-- 3. pbl_audit_log 审计日志(append-only)
|
||||
CREATE TABLE IF NOT EXISTS pbl_audit_log (
|
||||
@ -81,7 +81,7 @@ CREATE TABLE IF NOT EXISTS pbl_audit_log (
|
||||
KEY idx_pbl_audit_tid_obj (tenant_id, object_type, object_code),
|
||||
KEY idx_pbl_audit_tid_actor (tenant_id, actor_type, actor_code),
|
||||
KEY idx_pbl_audit_tid_trace (tenant_id, trace_id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='PBL 审计日志(append-only)';
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='PBL 审计日志(append-only)';
|
||||
|
||||
-- =====================================================================
|
||||
-- 模块 pbl_blueprint(11 表,M1a)
|
||||
@ -120,7 +120,7 @@ CREATE TABLE IF NOT EXISTS pbl_blueprint (
|
||||
KEY idx_pbl_bp_tid_subject (tenant_id, subject_code, grade_code),
|
||||
KEY idx_pbl_bp_tid_quality (tenant_id, quality_level),
|
||||
KEY idx_pbl_bp_tid_source (tenant_id, source_type, source_code)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='PBL 蓝图聚合根';
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='PBL 蓝图聚合根';
|
||||
|
||||
-- 5. pbl_blueprint_version 版本快照 + change_delta(append-only)
|
||||
CREATE TABLE IF NOT EXISTS pbl_blueprint_version (
|
||||
@ -140,7 +140,7 @@ CREATE TABLE IF NOT EXISTS pbl_blueprint_version (
|
||||
UNIQUE KEY uk_pbl_bp_version_no (tenant_id, bp_code, version_no),
|
||||
KEY idx_pbl_bp_version_tid_bp (tenant_id, bp_code, create_time),
|
||||
KEY idx_pbl_bp_version_tid_ck (tenant_id, checksum)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='PBL 蓝图版本快照(append-only)';
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='PBL 蓝图版本快照(append-only)';
|
||||
|
||||
-- 6. pbl_blueprint_lock 编辑锁
|
||||
CREATE TABLE IF NOT EXISTS pbl_blueprint_lock (
|
||||
@ -162,7 +162,7 @@ CREATE TABLE IF NOT EXISTS pbl_blueprint_lock (
|
||||
UNIQUE KEY uk_pbl_bp_lock_active (tenant_id, bp_code, lock_state),
|
||||
KEY idx_pbl_bp_lock_tid_holder (tenant_id, holder_code),
|
||||
KEY idx_pbl_bp_lock_tid_expire (tenant_id, expire_at)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='PBL 蓝图编辑锁';
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='PBL 蓝图编辑锁';
|
||||
|
||||
-- 7. pbl_subobject 7 类子对象泛化主表
|
||||
CREATE TABLE IF NOT EXISTS pbl_subobject (
|
||||
@ -188,7 +188,7 @@ CREATE TABLE IF NOT EXISTS pbl_subobject (
|
||||
KEY idx_pbl_subobj_tid_bp_type (tenant_id, bp_code, obj_type, sort_no),
|
||||
KEY idx_pbl_subobj_tid_parent (tenant_id, parent_code),
|
||||
KEY idx_pbl_subobj_tid_status (tenant_id, status)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='PBL 蓝图 7 类子对象泛化主表';
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='PBL 蓝图 7 类子对象泛化主表';
|
||||
|
||||
-- 8. pbl_subobject_attr 子对象泛化属性(KV)
|
||||
CREATE TABLE IF NOT EXISTS pbl_subobject_attr (
|
||||
@ -207,7 +207,7 @@ CREATE TABLE IF NOT EXISTS pbl_subobject_attr (
|
||||
UNIQUE KEY uk_pbl_subobj_attr_code (tenant_id, attr_code),
|
||||
UNIQUE KEY uk_pbl_subobj_attr_key (tenant_id, obj_code, attr_key),
|
||||
KEY idx_pbl_subobj_attr_tid_obj (tenant_id, obj_code, sort_no)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='PBL 子对象泛化属性 KV';
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='PBL 子对象泛化属性 KV';
|
||||
|
||||
-- 9. pbl_subobject_rel 子对象间关系
|
||||
CREATE TABLE IF NOT EXISTS pbl_subobject_rel (
|
||||
@ -228,7 +228,7 @@ CREATE TABLE IF NOT EXISTS pbl_subobject_rel (
|
||||
UNIQUE KEY uk_pbl_subobj_rel_triple (tenant_id, src_obj_code, dst_obj_code, rel_type),
|
||||
KEY idx_pbl_subobj_rel_tid_bp (tenant_id, bp_code, rel_type),
|
||||
KEY idx_pbl_subobj_rel_tid_dst (tenant_id, dst_obj_code)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='PBL 子对象关系';
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='PBL 子对象关系';
|
||||
|
||||
-- 10. pbl_subobject_asset 子对象资产引用(只读引用平台资产,不落资产本体)
|
||||
CREATE TABLE IF NOT EXISTS pbl_subobject_asset (
|
||||
@ -251,7 +251,7 @@ CREATE TABLE IF NOT EXISTS pbl_subobject_asset (
|
||||
UNIQUE KEY uk_pbl_subobj_asset_code (tenant_id, asset_code),
|
||||
KEY idx_pbl_subobj_asset_tid_obj (tenant_id, obj_code, sort_no),
|
||||
KEY idx_pbl_subobj_asset_tid_kind (tenant_id, asset_kind)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='PBL 子对象资产引用';
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='PBL 子对象资产引用';
|
||||
|
||||
-- 11. pbl_subobject_ref 子对象对复用域对象的只读引用(world/scene/entity/script)
|
||||
CREATE TABLE IF NOT EXISTS pbl_subobject_ref (
|
||||
@ -272,7 +272,7 @@ CREATE TABLE IF NOT EXISTS pbl_subobject_ref (
|
||||
UNIQUE KEY uk_pbl_subobj_ref_code (tenant_id, ref_code),
|
||||
KEY idx_pbl_subobj_ref_tid_obj (tenant_id, obj_code),
|
||||
KEY idx_pbl_subobj_ref_tid_mod (tenant_id, ref_module, ref_table, ref_biz_code)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='PBL 子对象对复用域只读引用';
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='PBL 子对象对复用域只读引用';
|
||||
|
||||
-- 12. pbl_subobject_review 子对象评审意见(append-only)
|
||||
CREATE TABLE IF NOT EXISTS pbl_subobject_review (
|
||||
@ -291,7 +291,7 @@ CREATE TABLE IF NOT EXISTS pbl_subobject_review (
|
||||
UNIQUE KEY uk_pbl_subobj_review_code (tenant_id, review_code),
|
||||
KEY idx_pbl_subobj_review_tid_bp (tenant_id, bp_code, create_time),
|
||||
KEY idx_pbl_subobj_review_tid_obj (tenant_id, obj_code)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='PBL 子对象评审意见(append-only)';
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='PBL 子对象评审意见(append-only)';
|
||||
|
||||
-- 13. pbl_blueprint_tag 蓝图标签
|
||||
CREATE TABLE IF NOT EXISTS pbl_blueprint_tag (
|
||||
@ -307,7 +307,7 @@ CREATE TABLE IF NOT EXISTS pbl_blueprint_tag (
|
||||
UNIQUE KEY uk_pbl_bp_tag_code (tenant_id, tag_code),
|
||||
UNIQUE KEY uk_pbl_bp_tag_kv (tenant_id, bp_code, tag_key),
|
||||
KEY idx_pbl_bp_tag_tid_key (tenant_id, tag_key, tag_value)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='PBL 蓝图标签';
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='PBL 蓝图标签';
|
||||
|
||||
-- 14. pbl_blueprint_publish 发布记录(append-only)
|
||||
CREATE TABLE IF NOT EXISTS pbl_blueprint_publish (
|
||||
@ -326,7 +326,7 @@ CREATE TABLE IF NOT EXISTS pbl_blueprint_publish (
|
||||
UNIQUE KEY uk_pbl_bp_publish_code (tenant_id, publish_code),
|
||||
KEY idx_pbl_bp_publish_tid_bp (tenant_id, bp_code, create_time),
|
||||
KEY idx_pbl_bp_publish_tid_target (tenant_id, channel, target_code)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='PBL 蓝图发布记录(append-only)';
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='PBL 蓝图发布记录(append-only)';
|
||||
|
||||
-- =====================================================================
|
||||
-- 模块 pbl_template(2 表,M1b)
|
||||
@ -355,7 +355,7 @@ CREATE TABLE IF NOT EXISTS pbl_template (
|
||||
KEY idx_pbl_template_tid_kind (tenant_id, tpl_kind, status),
|
||||
KEY idx_pbl_template_tid_subj (tenant_id, subject_code, grade_code),
|
||||
KEY idx_pbl_template_tid_offline (tenant_id, offline_flag)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='PBL 模板主表';
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='PBL 模板主表';
|
||||
|
||||
-- 16. pbl_template_item 模板条目(实例化 ID 重映射映射表)
|
||||
CREATE TABLE IF NOT EXISTS pbl_template_item (
|
||||
@ -374,7 +374,7 @@ CREATE TABLE IF NOT EXISTS pbl_template_item (
|
||||
UNIQUE KEY uk_pbl_template_item_code (tenant_id, item_code),
|
||||
UNIQUE KEY uk_pbl_template_item_key (tenant_id, tpl_code, tpl_obj_key),
|
||||
KEY idx_pbl_template_item_tid_tpl (tenant_id, tpl_code, sort_no)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='PBL 模板条目';
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='PBL 模板条目';
|
||||
|
||||
-- =====================================================================
|
||||
-- 模块 pbl_validation(3 表,M2:14 维 + 5 级质量状态)
|
||||
@ -402,7 +402,7 @@ CREATE TABLE IF NOT EXISTS pbl_validation_ruleset (
|
||||
UNIQUE KEY uk_pbl_valid_ruleset_code (tenant_id, ruleset_code),
|
||||
KEY idx_pbl_valid_ruleset_tid_dim (tenant_id, dim_code, enabled),
|
||||
KEY idx_pbl_valid_ruleset_tid_sort (tenant_id, sort_no)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='PBL 14 维校验规则集';
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='PBL 14 维校验规则集';
|
||||
|
||||
-- 18. pbl_validation_run 校验执行批次
|
||||
CREATE TABLE IF NOT EXISTS pbl_validation_run (
|
||||
@ -431,7 +431,7 @@ CREATE TABLE IF NOT EXISTS pbl_validation_run (
|
||||
KEY idx_pbl_valid_run_tid_bp (tenant_id, bp_code, create_time),
|
||||
KEY idx_pbl_valid_run_tid_state (tenant_id, run_state),
|
||||
KEY idx_pbl_valid_run_tid_level (tenant_id, quality_level)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='PBL 校验执行批次';
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='PBL 校验执行批次';
|
||||
|
||||
-- 19. pbl_validation_finding 校验发现明细(append-only 留痕)
|
||||
CREATE TABLE IF NOT EXISTS pbl_validation_finding (
|
||||
@ -452,7 +452,7 @@ CREATE TABLE IF NOT EXISTS pbl_validation_finding (
|
||||
KEY idx_pbl_valid_finding_tid_run (tenant_id, run_code, dim_code),
|
||||
KEY idx_pbl_valid_finding_tid_bp (tenant_id, bp_code, create_time),
|
||||
KEY idx_pbl_valid_finding_tid_obj (tenant_id, obj_code)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='PBL 校验发现明细(append-only)';
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='PBL 校验发现明细(append-only)';
|
||||
|
||||
-- =====================================================================
|
||||
-- 模块 pbl_compiler(4 表,M3a/M3b:确定性编译 + Game Definition)
|
||||
@ -482,7 +482,7 @@ CREATE TABLE IF NOT EXISTS pbl_compile_job (
|
||||
KEY idx_pbl_compile_job_tid_bp (tenant_id, bp_code, create_time),
|
||||
KEY idx_pbl_compile_job_tid_state (tenant_id, job_state),
|
||||
KEY idx_pbl_compile_job_tid_ick (tenant_id, input_checksum)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='PBL 编译作业';
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='PBL 编译作业';
|
||||
|
||||
-- 21. pbl_compile_artifact 编译中间产物
|
||||
CREATE TABLE IF NOT EXISTS pbl_compile_artifact (
|
||||
@ -501,7 +501,7 @@ CREATE TABLE IF NOT EXISTS pbl_compile_artifact (
|
||||
UNIQUE KEY uk_pbl_compile_artifact_code (tenant_id, artifact_code),
|
||||
KEY idx_pbl_compile_artifact_tid_job (tenant_id, job_code, sort_no),
|
||||
KEY idx_pbl_compile_artifact_tid_kind (tenant_id, artifact_kind)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='PBL 编译中间产物';
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='PBL 编译中间产物';
|
||||
|
||||
-- 22. pbl_game_definition Game Definition(编译最终产出)
|
||||
CREATE TABLE IF NOT EXISTS pbl_game_definition (
|
||||
@ -528,7 +528,7 @@ CREATE TABLE IF NOT EXISTS pbl_game_definition (
|
||||
KEY idx_pbl_gd_tid_state (tenant_id, gd_state),
|
||||
KEY idx_pbl_gd_tid_ck (tenant_id, checksum),
|
||||
KEY idx_pbl_gd_tid_world (tenant_id, world_ref, scene_ref)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='PBL Game Definition';
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='PBL Game Definition';
|
||||
|
||||
-- 23. pbl_compile_log 编译日志(append-only)
|
||||
CREATE TABLE IF NOT EXISTS pbl_compile_log (
|
||||
@ -546,7 +546,7 @@ CREATE TABLE IF NOT EXISTS pbl_compile_log (
|
||||
UNIQUE KEY uk_pbl_compile_log_code (tenant_id, log_code),
|
||||
KEY idx_pbl_compile_log_tid_job (tenant_id, job_code, seq_no),
|
||||
KEY idx_pbl_compile_log_tid_level (tenant_id, log_level, create_time)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='PBL 编译日志(append-only)';
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='PBL 编译日志(append-only)';
|
||||
|
||||
-- =====================================================================
|
||||
-- 模块 pbl_agent_runtime(4 表,M4a/M4b:Designer/Critic + fail-closed 裁决)
|
||||
@ -575,7 +575,7 @@ CREATE TABLE IF NOT EXISTS pbl_agent_session (
|
||||
KEY idx_pbl_agent_session_tid_bp (tenant_id, bp_code, session_state),
|
||||
KEY idx_pbl_agent_session_tid_role (tenant_id, agent_role),
|
||||
KEY idx_pbl_agent_session_tid_owner (tenant_id, owner_code)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='PBL Agent 会话';
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='PBL Agent 会话';
|
||||
|
||||
-- 25. pbl_agent_message Agent 消息(append-only)
|
||||
CREATE TABLE IF NOT EXISTS pbl_agent_message (
|
||||
@ -594,7 +594,7 @@ CREATE TABLE IF NOT EXISTS pbl_agent_message (
|
||||
UNIQUE KEY uk_pbl_agent_msg_code (tenant_id, msg_code),
|
||||
KEY idx_pbl_agent_msg_tid_sess (tenant_id, session_code, turn_no),
|
||||
KEY idx_pbl_agent_msg_tid_time (tenant_id, create_time)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='PBL Agent 消息(append-only)';
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='PBL Agent 消息(append-only)';
|
||||
|
||||
-- 26. pbl_agent_tool_call 工具调用记录(append-only)
|
||||
CREATE TABLE IF NOT EXISTS pbl_agent_tool_call (
|
||||
@ -614,7 +614,7 @@ CREATE TABLE IF NOT EXISTS pbl_agent_tool_call (
|
||||
KEY idx_pbl_agent_call_tid_sess (tenant_id, session_code, turn_no),
|
||||
KEY idx_pbl_agent_call_tid_tool (tenant_id, tool_name, tool_state),
|
||||
KEY idx_pbl_agent_call_tid_time (tenant_id, create_time)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='PBL Agent 工具调用(append-only)';
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='PBL Agent 工具调用(append-only)';
|
||||
|
||||
-- 27. pbl_agent_arbitration fail-closed 裁决记录(append-only)
|
||||
CREATE TABLE IF NOT EXISTS pbl_agent_arbitration (
|
||||
@ -635,7 +635,7 @@ CREATE TABLE IF NOT EXISTS pbl_agent_arbitration (
|
||||
KEY idx_pbl_agent_arb_tid_tool (tenant_id, tool_name, decision),
|
||||
KEY idx_pbl_agent_arb_tid_sess (tenant_id, session_code, create_time),
|
||||
KEY idx_pbl_agent_arb_tid_reason (tenant_id, deny_reason)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='PBL Agent fail-closed 裁决记录(append-only)';
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='PBL Agent fail-closed 裁决记录(append-only)';
|
||||
|
||||
-- =====================================================================
|
||||
-- 模块 pbl_evidence(4 表,M5a/M5b:产出物采集 + 证据幂等)
|
||||
@ -667,7 +667,7 @@ CREATE TABLE IF NOT EXISTS pbl_artifact (
|
||||
KEY idx_pbl_artifact_tid_team (tenant_id, team_code),
|
||||
KEY idx_pbl_artifact_tid_sess (tenant_id, session_code),
|
||||
KEY idx_pbl_artifact_tid_ck (tenant_id, checksum)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='PBL 学生产出物';
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='PBL 学生产出物';
|
||||
|
||||
-- 29. pbl_evidence 证据主表
|
||||
CREATE TABLE IF NOT EXISTS pbl_evidence (
|
||||
@ -696,7 +696,7 @@ CREATE TABLE IF NOT EXISTS pbl_evidence (
|
||||
KEY idx_pbl_evidence_tid_team (tenant_id, team_code, student_code),
|
||||
KEY idx_pbl_evidence_tid_obj (tenant_id, obj_code),
|
||||
KEY idx_pbl_evidence_tid_time (tenant_id, occurred_at)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='PBL 证据主表(幂等键唯一)';
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='PBL 证据主表(幂等键唯一)';
|
||||
|
||||
-- 30. pbl_evidence_idem 证据幂等提交台账(append-only)
|
||||
CREATE TABLE IF NOT EXISTS pbl_evidence_idem (
|
||||
@ -715,7 +715,7 @@ CREATE TABLE IF NOT EXISTS pbl_evidence_idem (
|
||||
UNIQUE KEY uk_pbl_evidence_idem_key (tenant_id, idem_key),
|
||||
KEY idx_pbl_evidence_idem_tid_time (tenant_id, create_time),
|
||||
KEY idx_pbl_evidence_idem_tid_conf (tenant_id, conflict_flag)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='PBL 证据幂等台账(append-only)';
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='PBL 证据幂等台账(append-only)';
|
||||
|
||||
-- 31. pbl_evidence_binding 证据与复用域对象绑定(零改表关联)
|
||||
CREATE TABLE IF NOT EXISTS pbl_evidence_binding (
|
||||
@ -734,7 +734,7 @@ CREATE TABLE IF NOT EXISTS pbl_evidence_binding (
|
||||
UNIQUE KEY uk_pbl_evidence_binding_code (tenant_id, bind_code),
|
||||
KEY idx_pbl_evidence_binding_tid_ev (tenant_id, evidence_code),
|
||||
KEY idx_pbl_evidence_binding_tid_ref (tenant_id, ref_module, ref_table, ref_biz_code)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='PBL 证据与复用域绑定(零改表)';
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='PBL 证据与复用域绑定(零改表)';
|
||||
|
||||
-- =====================================================================
|
||||
-- 模块 pbl_assessment(3 表,M6:Rubric 加权评估与报告)
|
||||
@ -762,7 +762,7 @@ CREATE TABLE IF NOT EXISTS pbl_rubric (
|
||||
UNIQUE KEY uk_pbl_rubric_code (tenant_id, rubric_code),
|
||||
KEY idx_pbl_rubric_tid_bp (tenant_id, bp_code, status),
|
||||
KEY idx_pbl_rubric_tid_default (tenant_id, is_default)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='PBL 量规主表';
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='PBL 量规主表';
|
||||
|
||||
-- 33. pbl_rubric_criterion 量规评价维度条目
|
||||
CREATE TABLE IF NOT EXISTS pbl_rubric_criterion (
|
||||
@ -784,7 +784,7 @@ CREATE TABLE IF NOT EXISTS pbl_rubric_criterion (
|
||||
UNIQUE KEY uk_pbl_rubric_crit_code (tenant_id, crit_code),
|
||||
KEY idx_pbl_rubric_crit_tid_rub (tenant_id, rubric_code, sort_no),
|
||||
KEY idx_pbl_rubric_crit_tid_obj (tenant_id, obj_code)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='PBL 量规评价维度';
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='PBL 量规评价维度';
|
||||
|
||||
-- 34. pbl_assessment_report 评估报告
|
||||
CREATE TABLE IF NOT EXISTS pbl_assessment_report (
|
||||
@ -815,7 +815,7 @@ CREATE TABLE IF NOT EXISTS pbl_assessment_report (
|
||||
KEY idx_pbl_assess_report_tid_team (tenant_id, team_code, student_code),
|
||||
KEY idx_pbl_assess_report_tid_state (tenant_id, report_state),
|
||||
KEY idx_pbl_assess_report_tid_grade (tenant_id, grade_code)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='PBL 评估报告';
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='PBL 评估报告';
|
||||
|
||||
-- =====================================================================
|
||||
-- 模块 pbl_domain_ext(1 表,M8:world/scene/entity 租户·班级·团队关联,不改基表)
|
||||
@ -849,7 +849,7 @@ CREATE TABLE IF NOT EXISTS pbl_domain_binding (
|
||||
KEY idx_pbl_domain_binding_tid_bp (tenant_id, bp_code),
|
||||
KEY idx_pbl_domain_binding_tid_sess (tenant_id, session_code),
|
||||
KEY idx_pbl_domain_binding_tid_ref (tenant_id, ref_module, ref_id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='PBL 复用域绑定(零改表)';
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='PBL 复用域绑定(零改表)';
|
||||
|
||||
-- =====================================================================
|
||||
-- 模块 pbl_analytics(1 表,M10:分析看板快照,append-only)
|
||||
@ -874,7 +874,7 @@ CREATE TABLE IF NOT EXISTS pbl_analytics_snapshot (
|
||||
UNIQUE KEY uk_pbl_analytics_snap_dim (tenant_id, metric_group, scope_type, scope_code, period_key),
|
||||
KEY idx_pbl_analytics_snap_tid_group (tenant_id, metric_group, period_key),
|
||||
KEY idx_pbl_analytics_snap_tid_scope (tenant_id, scope_type, scope_code)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='PBL 分析看板快照(append-only)';
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='PBL 分析看板快照(append-only)';
|
||||
|
||||
SET FOREIGN_KEY_CHECKS = 1;
|
||||
|
||||
@ -891,3 +891,29 @@ SET FOREIGN_KEY_CHECKS = 1;
|
||||
-- FOREIGN KEY / REFERENCES / ENUM( / SERIAL / BIGSERIAL / nextval / TIMESTAMP
|
||||
-- 全部索引以 tenant_id 打头;每表 id BIGINT NOT NULL AUTO_INCREMENT + xxx_code 唯一业务主键。
|
||||
-- =====================================================================
|
||||
|
||||
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)";
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user