Visual LabINTERACTIVE LEARNING
01 · DATA MODELINGP010 MIN

Soft Delete 与 Audit Field

保留业务历史,同时明确哪些数据仍应被默认视为存在。

MENTAL MODELLIFECYCLE FIELDS
01Active
02deleted_at 写入
03默认查询排除
04恢复 / 清理
软删除不是“没有删除”,而是把记录从活跃集合迁移到历史状态。
01 · CONCEPTS & BOUNDARIES

先把概念与边界说清楚

定义告诉你它是什么,边界告诉你它不负责什么;企业系统最常见的误解通常发生在两者混用时。

01

Soft Delete

通过 deleted_at 或状态标记隐藏记录,保留引用和恢复可能。

02

Audit Field

created_at、updated_at、created_by、updated_by 记录生命周期基本上下文。

03

Partial Unique

只对未删除记录应用唯一约束,可允许删除后重用业务键。

02 · BLIND BOTS CASE

删除客户后订单历史断裂

问题现场

物理删除 Customer 导致历史订单无法显示收件人与联系人。

  1. 01

    客户改为软删除并禁止新订单选择。

  2. 02

    订单保留成交时客户信息快照。

  3. 03

    设置保留期后匿名化个人信息。

得到什么

业务历史与隐私生命周期同时得到处理。

03 · PRACTICE

马上动手

  1. 列出 Product、Order、LoginLog 哪些适合软删除。
  2. 为软删除查询写统一默认作用域。
04 · PITFALLS

常见坑

  • 每条查询都手写 deleted_at 条件
  • 软删除记录仍参与唯一约束却无设计
  • 把软删除当隐私删除
05 · KNOWLEDGE CHECKAudit Field 和 Audit Log 的核心区别是什么?查看答案⌄
答案

字段只记录当前行最后或首次由谁在何时改变;日志保留每次动作、前后值、原因和请求上下文。