This commit is contained in:
2025-12-05 00:09:32 +08:00
parent bb3d22eabf
commit 3d1dbb3f97
214 changed files with 113060 additions and 1232 deletions
+53
View File
@@ -0,0 +1,53 @@
-- ========================================
-- 简化版外键约束(不需要自引用)
-- ========================================
-- 步骤 1: 将所有 pid=0 改为 NULL(标准做法)
UPDATE evaluation_point_groups
SET pid = NULL
WHERE pid = 0;
-- 步骤 2: 为 evaluation_points 添加外键约束
-- 2.1 子分组外键:evaluation_point_groups_id → evaluation_point_groups.id
ALTER TABLE evaluation_points
ADD CONSTRAINT fk_evaluation_points_child_group
FOREIGN KEY (evaluation_point_groups_id)
REFERENCES evaluation_point_groups(id)
ON DELETE SET NULL
ON UPDATE CASCADE;
-- 2.2 父分组外键:evaluation_point_groups_pid → evaluation_point_groups.id
ALTER TABLE evaluation_points
ADD CONSTRAINT fk_evaluation_points_parent_group
FOREIGN KEY (evaluation_point_groups_pid)
REFERENCES evaluation_point_groups(id)
ON DELETE SET NULL
ON UPDATE CASCADE;
-- ⚠️ 注意:不再需要 evaluation_point_groups 表的自引用外键
-- 因为 evaluation_points 已经直接存储了父级分组ID
-- 添加注释
COMMENT ON CONSTRAINT fk_evaluation_points_child_group ON evaluation_points
IS '评查点所属规则组外键约束(二级分组)';
COMMENT ON CONSTRAINT fk_evaluation_points_parent_group ON evaluation_points
IS '评查点类型外键约束(父级分组)';
-- 步骤 3: 验证外键约束是否创建成功
SELECT
tc.table_name AS "表名",
tc.constraint_name AS "约束名",
kcu.column_name AS "列名",
ccu.table_name AS "引用表名",
ccu.column_name AS "引用列名"
FROM information_schema.table_constraints AS tc
JOIN information_schema.key_column_usage AS kcu
ON tc.constraint_name = kcu.constraint_name
JOIN information_schema.constraint_column_usage AS ccu
ON ccu.constraint_name = tc.constraint_name
WHERE tc.constraint_type = 'FOREIGN KEY'
AND tc.table_name = 'evaluation_points'
AND kcu.column_name IN ('evaluation_point_groups_id', 'evaluation_point_groups_pid')
ORDER BY kcu.column_name;