先给结论:不要急着批量重导,也不要因为一次报错就推翻整套旧输入规范。正确做法是把“对象格式变化”拆成三件事——旧数据还能不能识别、哪些字段仍有保留价值、新规范要改到什么粒度。只有当旧格式的语义无法映射到新对象时,才考虑退出;能映射的字段应改写而不是删除。
友链查询的输入对象通常包含几类信息:站点标识、链接位置、页面地址、联系或备注字段,以及历史状态。格式变化可能只发生在其中一层。例如,旧系统用一列纯文本记录链接页,新工具要求把域名和具体页面分开;旧合作记录里把“已下线”和“暂停”写在同一个备注字段,新对象却要求状态独立。
判断方法很直接:拿三条旧记录做人工映射,看能否在不新增信息的前提下填进新对象。如果三条都能填进去,只是字段位置变了,这属于改写问题;如果必须补充旧记录里根本没有的信息才能通过校验,才进入退出评估。这里的关键证据是“缺失字段是否影响后续判断”,而不是工具是否报错。
保留适用于旧对象仍能唯一识别、且后续还要继续跟踪的关系。比如旧记录里的域名没有变,只是链接页路径调整,那么域名和合作方标识应保留,路径按新规范补全。保留时不要整行复制,否则会把旧格式的歧义带进新系统。
改写适用于语义还在、表达方式变了的情况。典型动作是把一个混合字段拆成两个字段:原备注里的“首页链接,已暂停”拆成“链接位置=首页”和“状态=暂停”。改写后要回填一次,确认新对象能独立表达原意。如果改写后仍需依赖人工记忆才能理解,说明拆得不够。
退出只适用于旧对象无法映射、且继续保留会污染新规范的情况。例如旧记录只有对方站名,没有可核对的域名或页面,而新对象要求以可访问地址为主键。此时退出不是删除历史,而是把这类记录移出主查询对象,另存为待补充清单。退出动作的直接结果是:主对象变干净,但待补充清单需要有人定期回看,否则会被误认为已经处理完。
不要一上来就追求完整字段。先列出新对象校验必须通过的字段,把它们作为最小可用字段集;其余旧字段先进入备注或扩展区。这样做的原因是,格式变化初期最容易出错的地方是必填项映射,而不是可选信息丢失。
这个顺序的实际影响是:批量改写范围被限制在可唯一识别的记录上,出错时回滚成本低;人工确认集中在模糊记录上,不会把时间耗在本来就能自动映射的数据上。
假设旧输入规范只有一列“备注”,里面写着“侧栏,长期,已换站”。新对象要求分别填写链接位置、合作类型和当前状态。可以这样处理:链接位置填“侧栏”,合作类型填“长期”,当前状态填“已换站”,并在扩展备注里保留原文。如果新对象没有“已换站”这个状态选项,就不要硬塞进“有效”或“失效”,而应把它放入待确认状态,并触发一次人工核对。
这个例子的假设前提是:旧备注的写法在同一批数据里含义一致。如果同一批记录里“已换站”有时指对方换域名、有时指自己撤下链接,那么拆分前必须先统一语义,否则改写只是把歧义换了个位置。
工具报错数量上升,不能单独证明旧对象应该全部退出。报错也可能来自必填项过严、编码差异或临时校验规则变化。更可靠的退出条件是:旧对象缺少新规范赖以判断的核心字段,且补全该字段的成本高于重新建立关系的成本。满足这个条件时,退出是合理取舍;不满足时,优先改写输入规范中的映射层。
最后要落实一个动作:为改写后的对象保留一段观察期,期间只做查询和核对,不立即用新对象做删除或合并决策。观察期结束后,再根据反向检查结果决定哪些记录正式退出。这样,格式变化带来的不是一次性的重导,而是一次可回退的规范调整。