ai-business-write/技术文档/修复重复字段总结.md

3.4 KiB
Raw Blame History

修复重复字段总结

问题分析

通过分析 f_polic_field 表,发现存在以下重复问题:

1. 重复的字段编码 (filed_code)

发现 2个重复的字段编码

问题1: target_id_number 重复

  • 字段1: ID=1764836032902356, name="被核查人员身份证号码(带括号)", 关联模板数=0
  • 字段2: ID=1764836032913357, name="被核查人员身份证号", 关联模板数=9

处理方案

  • 保留字段2ID=1764836032913357因为它关联了9个模板
  • 删除字段1ID=1764836032902356因为它没有关联任何模板

问题2: target_organization_and_position 重复

  • 字段1: ID=1764656917367205, name="被核查人员单位及职务", 关联模板数=4
  • 字段2: ID=1764836032734251, name="被核查人单位及职务", 关联模板数=9

处理方案

  • 保留字段2ID=1764836032734251因为它关联了9个模板
  • 删除字段1ID=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: 租户ID
  • name: 字段名称
  • 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: 验证修复结果

注意事项

  1. 数据完整性:修复过程中已确保所有模板关联关系都迁移到保留字段,不会丢失数据
  2. 唯一性约束:虽然数据库表结构中没有对 filed_code 设置唯一约束,但通过修复已确保数据唯一性
  3. 建议:可以考虑在数据库层面为 filed_code 添加唯一索引,防止将来再次出现重复

建议的数据库优化

-- 为 filed_code 添加唯一索引(建议执行)
ALTER TABLE f_polic_field 
ADD UNIQUE INDEX idx_tenant_filed_code (tenant_id, filed_code);

这样可以确保在数据库层面防止重复的 filed_code