绑定确认为 source binding projection 读模型的权威回填点:bind 成功后写投影行;unbind 按 bindingId 作用域撤销,不误伤同源绑定到其它作品的投影。 唯一键补 work_id(V24):同源 KB 可被同一用户绑定到多个作品,旧唯一键缺 work_id 会把合法跨作品复用误判为冲突;改为含 work_id 的 partial unique index(WHERE deleted=FALSE)。 验证:MuseKnowledgeBindingServiceTest + MuseKnowledgeSourceBindingProjectionMapperTest 11/11,knowledge-server 整套件 214/214 绿(clean 重编译,反假绿)。 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
11 lines
621 B
SQL
11 lines
621 B
SQL
-- Knowledge source binding projection 是按作品读回的读模型;同一来源 KB 可被同一用户绑定到多个作品。
|
||
-- 旧唯一键缺少 work_id,会把合法的跨作品复用误判为冲突。
|
||
ALTER TABLE muse_knowledge_source_binding_projection
|
||
DROP CONSTRAINT IF EXISTS uk_muse_knowledge_source_projection_scope;
|
||
|
||
DROP INDEX IF EXISTS uk_muse_knowledge_source_projection_scope;
|
||
|
||
CREATE UNIQUE INDEX uk_muse_knowledge_source_projection_scope
|
||
ON muse_knowledge_source_binding_projection(tenant_id, owner_user_id, work_id, source_owner, source_type, source_id, kb_id)
|
||
WHERE deleted = FALSE;
|