数据库软删除设计

目录

软删除设计

常见方案

  1. 使用删除标识字段,通常为布尔类型(mysql tinyint)

  2. 使用 delete_at 时间类型字段,默认值为空,代表未删除,不为空则代表删除时间

优点:实现简单方便,框架支持较好

缺点:无法支持唯一索引

改进方案

对于使用了软删除的表,唯一索引上必须要加上软删除的字段

  1. 使用 delete_at 时间戳类型字段,不允许为空,默认值为 0,代表未删除,不为 0 则代表删除
  2. 使用 deleted_id 来作为软删除字段。默认值是 0(如果主键是字符串类型,默认为空字符串),如果是已删除的数据,那更新 deleted_id=id