如何为数据库应用程序制作回收站?

时间:2009-09-01 09:40:45

标签: database database-design recycle-bin

我有数据库应用程序,我想允许用户从数据库中恢复已删除的记录,就像在windows中我们有文件的回收站我想做同样的事情但是对于数据库记录,假设我有很多具有大量字段的相关表格。

编辑:

让我说我有以下结构:

报告表

  • RepName主键
  • ReportData

用户表

  • ID主键
  • 名称

UserReports表

  • RepName主键
  • UserID主键
  • 请将isDeleted

现在,如果我在UserReports表中放置了isdeleted字段,如果用户标记为已删除,则用户无法再次添加相同的记录,因为该记录已经存在,这将导致重复。

1 个答案:

答案 0 :(得分:2)

注意:我总是使用代理主键。

添加时间戳'deleted_at'列。当用户删除条目时,将当前时间。将此关键部分作为约束的一部分。

在每个查询中,请记住仅搜索deleted_at字段中为null的记录。

一些框架(如ActiveRecord)使得它变得微不足道。