Database 如何为数据库应用程序创建回收站?

Database 如何为数据库应用程序创建回收站?,database,database-design,recycle-bin,Database,Database Design,Recycle Bin,我有数据库应用程序,我想允许用户从数据库中恢复删除的记录,就像在windows中我们有文件回收站一样,我想做同样的事情,但对于数据库记录,假设我有很多相关的表,有很多字段 编辑: 假设我有以下结构: 报告表 RepName主键 报告数据 用户表 ID主键 名字 用户报告表 RepName主键 用户标识主键 删除 现在,如果我将isdeleted字段放在UserReports表中,那么如果将同一条记录标记为已删除,则用户无法再次添加该记录,因为该记录已被删除,这将导致重复。注意:我始终

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

编辑:

假设我有以下结构:

报告表

  • RepName主键
  • 报告数据
用户表

  • ID主键
  • 名字
用户报告表

  • RepName主键
  • 用户标识主键
  • 删除

现在,如果我将isdeleted字段放在UserReports表中,那么如果将同一条记录标记为已删除,则用户无法再次添加该记录,因为该记录已被删除,这将导致重复。

注意:我始终使用代理主键

添加时间戳“deleted_at”列。当用户删除条目时,将其放在当前时间。使这成为约束的关键部分

在每个查询中,请记住只搜索在“已删除的”字段中为null的记录


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

我考虑过这一点,这会给我在表上设置的约束带来很多问题。在我的问题中添加更多信息后,请再次查看..好的,使用时间戳列,然后:)