feat(kol): enhance KOL constraints per review findings
- Add composite FK kol_usage_logs(prompt_id, prompt_revision_no) -> kol_prompt_revisions
to enforce audit replay integrity
- Add CHECK constraint: active prompts must have a published revision
- Add tenant-leading index on kol_packages for list path performance
Addresses review feedback on commit 60fb8a4.
This commit is contained in:
@@ -0,0 +1,7 @@
|
|||||||
|
DROP INDEX IF EXISTS idx_kol_package_tenant;
|
||||||
|
|
||||||
|
ALTER TABLE kol_prompts
|
||||||
|
DROP CONSTRAINT IF EXISTS chk_kol_prompts_active_has_published_revision;
|
||||||
|
|
||||||
|
ALTER TABLE kol_usage_logs
|
||||||
|
DROP CONSTRAINT IF EXISTS fk_kol_usage_logs_prompt_revision;
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
-- Enhance KOL core tables with integrity constraints and missing index.
|
||||||
|
-- Follow-up to 20260417100000 addressing review findings:
|
||||||
|
-- 1. Composite FK for usage-log audit replay (prompt_id, prompt_revision_no)
|
||||||
|
-- 2. CHECK: active prompts must have a published revision
|
||||||
|
-- 3. Tenant-leading index on kol_packages for list paths
|
||||||
|
|
||||||
|
ALTER TABLE kol_usage_logs
|
||||||
|
ADD CONSTRAINT fk_kol_usage_logs_prompt_revision
|
||||||
|
FOREIGN KEY (prompt_id, prompt_revision_no)
|
||||||
|
REFERENCES kol_prompt_revisions(prompt_id, revision_no);
|
||||||
|
|
||||||
|
ALTER TABLE kol_prompts
|
||||||
|
ADD CONSTRAINT chk_kol_prompts_active_has_published_revision
|
||||||
|
CHECK (status <> 'active' OR published_revision_no IS NOT NULL);
|
||||||
|
|
||||||
|
CREATE INDEX idx_kol_package_tenant
|
||||||
|
ON kol_packages(tenant_id, created_at DESC)
|
||||||
|
WHERE deleted_at IS NULL;
|
||||||
Reference in New Issue
Block a user