数据库软删除设计

目录

软删除设计

常见方案

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

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

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

缺点:无法支持唯一索引

改进方案

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

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