我需要将用户输入的更改存储到特定表中,但在管理员用户查看和批准之前不显示这些更改。虽然这些更改仍处于待处理状态,但我仍会显示旧版本的数据。存储这些等待批准的更改的最佳方式是什么?
我想了几种方法,但不知道什么是最好的方法。这是一个非常小的网络应用程序。一种方法是创建一个模仿另一个表模式的 PendingChanges 表,然后一旦更改获得批准,我就可以使用信息更新真实表。另一种方法是进行某种记录版本控制,我将多个版本的数据存储在表中,然后始终提取已标记为已批准的最高版本号的记录。这将限制额外表的数量(我需要为多个表执行此操作),但每次我提取一组记录时都需要进行额外处理以确保获得正确的记录。
对这些方法或其他可能好的方法有任何个人经验吗?
更新:澄清一下,在这种特殊情况下,我对历史数据不太感兴趣。我只需要某种方式来批准用户在网站上上线之前所做的任何更改。因此,用户将编辑他们的“个人资料”,然后管理员将查看该修改并批准它。一旦批准,将成为显示值,旧版本不需要保留。
任何人都尝试过下面的解决方案,您可以在特殊的 PendingChanges 表中存储任何需要将它们作为 XML 跟踪的表中的未决更改?每条记录都会有一列表示更改是针对哪个表的,一列可能存储将要更改的记录的 id(如果是新记录,则为 null),一个日期时间列,用于存储更改发生的时间,以及用于存储更改记录的 xml 的列(可能会序列化我的数据对象)。由于我不需要历史记录,因此在批准更改后,将更新真实表并删除 PendingChange 记录。
对这种方法有什么想法吗?