3.4 KiB
3.4 KiB
修复重复字段总结
问题分析
通过分析 f_polic_field 表,发现存在以下重复问题:
1. 重复的字段编码 (filed_code)
发现 2个重复的字段编码:
问题1: target_id_number 重复
- 字段1: ID=1764836032902356, name="被核查人员身份证号码(带括号)", 关联模板数=0
- 字段2: ID=1764836032913357, name="被核查人员身份证号", 关联模板数=9
处理方案:
- 保留字段2(ID=1764836032913357),因为它关联了9个模板
- 删除字段1(ID=1764836032902356),因为它没有关联任何模板
问题2: target_organization_and_position 重复
- 字段1: ID=1764656917367205, name="被核查人员单位及职务", 关联模板数=4
- 字段2: ID=1764836032734251, name="被核查人单位及职务", 关联模板数=9
处理方案:
- 保留字段2(ID=1764836032734251),因为它关联了9个模板
- 删除字段1(ID=1764656917367205),并将它的4个关联关系迁移到保留字段
修复操作
1. 迁移关联关系
- 将删除字段的模板关联关系迁移到保留字段
- 如果保留字段已经关联了某个模板,则跳过重复关联
2. 删除无效字段
- 删除重复字段在
f_polic_file_field表中的所有关联关系 - 删除重复字段本身
3. 验证结果
- ✅ 所有
filed_code现在都是唯一的(74个字段,74个唯一编码) - ✅ 所有字段名称现在都是唯一的(74个字段,74个唯一名称)
- ✅ 所有更改已提交到数据库
修复后的状态
字段统计
- 总字段数: 74
- 唯一字段编码数: 74
- 唯一字段名称数: 74
未关联模板的字段
发现 38 个未关联任何模板的输出字段,这些字段可能是:
- 预留字段,供将来使用
- 已废弃但未删除的字段
- 特殊用途字段
这些字段不影响系统功能,可以保留或根据业务需求决定是否删除。
相关表结构
f_polic_field(字段定义表)
id: 字段ID(主键)tenant_id: 租户IDname: 字段名称filed_code: 字段编码(现在唯一)field_type: 字段类型(1=输入字段,2=输出字段)state: 状态(0=未启用,1=启用)
f_polic_file_field(文件和字段关联表)
file_id: 文件配置ID(关联 f_polic_file_config.id)filed_id: 字段ID(关联 f_polic_field.id)
f_polic_file_config(文件模板配置表)
id: 文件配置ID(主键)name: 文件名称file_path: MinIO文件路径state: 状态(0=未启用,1=启用)
修复脚本
使用的修复脚本:
analyze_duplicate_fields.py: 分析重复字段fix_duplicate_fields.py: 修复重复字段verify_field_uniqueness.py: 验证修复结果
注意事项
- 数据完整性:修复过程中已确保所有模板关联关系都迁移到保留字段,不会丢失数据
- 唯一性约束:虽然数据库表结构中没有对
filed_code设置唯一约束,但通过修复已确保数据唯一性 - 建议:可以考虑在数据库层面为
filed_code添加唯一索引,防止将来再次出现重复
建议的数据库优化
-- 为 filed_code 添加唯一索引(建议执行)
ALTER TABLE f_polic_field
ADD UNIQUE INDEX idx_tenant_filed_code (tenant_id, filed_code);
这样可以确保在数据库层面防止重复的 filed_code。