-- ===================================================================== -- pbl_domain_ext(M8)— world/scene/entity 薄扩展 -- 权威 DDL:projects/pbls/docs/01-design/data-model.md §J(J1. pbl_domain_ref) -- 表总账:projects/pbls/pbls_spec.json tables_by_module.pbl_domain_ext = 1 -- 铁律:不改 world / scene / entity 三张复用基表(零 ALTER、零侵入模块代码) -- ===================================================================== -- J1. pbl_domain_ref — world/scene/entity 薄扩展关联(ref_type + ref_id 唯一) CREATE TABLE IF NOT EXISTS pbl_domain_ref ( id BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键', tenant_id VARCHAR(64) NOT NULL COMMENT '租户ID(基表无租户列,PBL 多租户隔离由本表补齐)', ref_type VARCHAR(32) NOT NULL COMMENT 'appcodes:pbl_domain_ref_type(world/scene/entity)', ref_id BIGINT NOT NULL COMMENT '复用基表记录ID(world.id / scene.id / entity.id)', blueprint_id VARCHAR(64) DEFAULT NULL COMMENT '关联蓝图ID(pbl_blueprint,compiler apply 后回写)', class_id VARCHAR(64) DEFAULT NULL COMMENT '关联教学班ID(pbl_governance.pbl_class)', team_id VARCHAR(64) DEFAULT NULL COMMENT '关联团队ID(pbl_governance.pbl_team,共享世界分组)', ext JSON DEFAULT NULL COMMENT '扩展属性(JSON,薄扩展附加维度,不改基表)', is_deleted TINYINT NOT NULL DEFAULT 0 COMMENT '软删标记:0=有效 1=已解绑(unbind_ref 置 1)', created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', PRIMARY KEY (id), UNIQUE KEY uk_pbl_domain_ref (tenant_id, ref_type, ref_id), KEY idx_pbl_domain_ref_bp (tenant_id, blueprint_id), KEY idx_pbl_domain_ref_class (tenant_id, class_id), KEY idx_pbl_domain_ref_team (tenant_id, team_id), KEY idx_pbl_domain_ref_type (ref_type, ref_id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='world/scene/entity 薄扩展关联表(M8,不改基表)'; -- 编码:ref_type 取值受 appcodes:pbl_domain_ref_type 约束(world/scene/entity), -- 由 pbl_appcodes 模块幂等注入,本模块不重复写入编码表。