01 · DATA MODELINGP010 MIN
Soft Delete 与 Audit Field
保留业务历史,同时明确哪些数据仍应被默认视为存在。
MENTAL MODELLIFECYCLE FIELDS
01Active
→02deleted_at 写入
→03默认查询排除
→04恢复 / 清理
先把概念与边界说清楚
定义告诉你它是什么,边界告诉你它不负责什么;企业系统最常见的误解通常发生在两者混用时。
Soft Delete
通过 deleted_at 或状态标记隐藏记录,保留引用和恢复可能。
Audit Field
created_at、updated_at、created_by、updated_by 记录生命周期基本上下文。
Partial Unique
只对未删除记录应用唯一约束,可允许删除后重用业务键。
删除客户后订单历史断裂
物理删除 Customer 导致历史订单无法显示收件人与联系人。
- 01
客户改为软删除并禁止新订单选择。
- 02
订单保留成交时客户信息快照。
- 03
设置保留期后匿名化个人信息。
业务历史与隐私生命周期同时得到处理。
马上动手
- 列出 Product、Order、LoginLog 哪些适合软删除。
- 为软删除查询写统一默认作用域。
常见坑
- 每条查询都手写 deleted_at 条件
- 软删除记录仍参与唯一约束却无设计
- 把软删除当隐私删除
05 · KNOWLEDGE CHECKAudit Field 和 Audit Log 的核心区别是什么?查看答案⌄
答案
字段只记录当前行最后或首次由谁在何时改变;日志保留每次动作、前后值、原因和请求上下文。