oh-my-muse/muse-cloud/sql/muse/V24__fix_knowledge_source_projection_scope.sql
lili 8aad7a4b1b fix(knowledge): 绑定确认回填来源投影 + 唯一键补 work_id
绑定确认为 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>
2026-06-19 09:31:56 -07:00

11 lines
621 B
SQL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- 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;