器库yueser.com

写安全的数据删除流程

收录 2026-11-03

先软删、再确认、最后硬删,并留下可追溯记录。

我们要删除一批用户数据(场景稍后给你)。请设计删除流程:1)分阶段:标记、软删、硬删,各阶段的时间与条件;2)删除前需要检查的关联数据(备份、日志、统计、下游同步);3)谁能发起、谁审批、怎么防止误删;4)用户可见的说明与反悔窗口;5)删除后的验证与记录;6)指出最容易留下残留数据的三处。
本站原创

中文原文

使用建议

删除流程的重点是「可反悔」,不是「删得快」。

可以这样改

  • 要求它先复述需求与约束,确认无误再写代码。
  • 让它给出最小改动 + 回滚方式,而不是整文件重写。

交付物(这次应拿到什么)

  • 可运行的最小改动(含直接可用的代码块)
  • 影响面清单:改了哪些文件、哪些调用点要跟着改

常见错法

  • 一次让它改十个文件,最后分不清哪处改动导致了新问题。
  • 只贴报错不贴代码和版本,拿到无法落地的修法。

输出验收(怎么判断能用)

  • 改动可运行、可回滚,且没顺手改无关代码。
  • 边界条件(空值、超长、并发)有说明或测试。

适用场景与注意

  • 适合:让它先复述需求和约束,再给最小可运行改动。
  • 注意:贴报错时同时给版本号与最小复现,否则它容易给出看似合理但不适配的写法。

适合什么场景

  • 收到用户或法务的删除请求,涉及生产数据,需要既删干净又不误删。
  • 准备清理一批历史数据,担心删除后下游统计、备份或缓存里还留着。

不适合的场景

  • 只是隐藏一条记录、用户随时可能恢复——用软删除或状态标记,不要走完整删除流程。
  • 数据量极小、无下游依赖、也无合规要求——直接删并记录,不必设计多阶段。

示例

输入
需要删除 3 个用户的全部数据:主库 users/orders/messages,MySQL 有只读从库,分析仓库每天同步一次,对象存储有附件,CDN 有缓存,另有 7 天备份。
你会得到
先给阶段:标记(当日)→ 软删并从读写链路下架(当日)→ 硬删(7 天后,覆盖备份周期)→ 验证。删除前检查:从库复制延迟、分析仓库的每日同步窗口、对象存储附件清单、CDN 缓存键、备份保留策略。发起人=客服,审批人=数据负责人,执行需二次确认并留操作日志。反悔窗口设在软删到硬删之间。验证要看五处:主库行数归零、从库同步完成、分析仓库重跑后无数据、附件 404、缓存清除。最容易残留的是备份与分析仓库、以及日志里的 PII。

常见误用

  • 直接跑 DELETE:无审批、无验证、无法证明删干净,也无法在出错时恢复。
  • 只删主库:从库、分析仓库、对象存储、CDN、日志仍留有数据,等于没删。

可以这样改

  • 按「用户可感知删除」设计:先让用户看到数据已移除,再在后台完成硬删。
  • 按「最小可逆」设计:先软删并保留快照,确认无业务影响后再硬删,把不可逆步骤压到最少。

同方向的其他提示词