相关疑难解决方法(0)

在可见之前,需要批准的数据库记录存储更改的最佳方法是什么?

我需要将用户输入的更改存储到特定表中,但在管理用户查看和批准之前不会显示这些更改.虽然这些更改仍处于暂挂状态,但我仍会显示旧版本的数据.存储这些变更等待批准的最佳方法是什么?

我想过几种方法,但无法弄清楚什么是最好的方法.这是一个非常小的网络应用程序.一种方法是使PendingChanges表模仿其他表的模式,然后一旦批准更改,我就可以用信息更新真实表.另一种方法是进行某种记录版本控制,其中我在表中存储多个版本的数据,然后始终使用已标记为已批准的最高版本号来提取记录.这将限制额外表的数量(我需要为多个表执行此操作),但每次我提取一组记录以确保获得正确的记录时,我需要进行额外的处理.

这些方法或其他可能有用的个人经历?

更新:只是为了澄清,在这种特殊情况下,我对历史数据不感兴趣.我只需要某种方式来批准用户在网站上发布之前所做的任何更改.因此,用户将编辑他们的"配置文件",然后管理员将查看该修改并批准它.一旦获得批准,这将成为显示的值,并且不需要保留旧版本.

是否有人尝试过以下解决方案,您可以在任何需要在特殊PendingChanges表中将其作为XML跟踪的表中存储挂起的更改?每个记录都有一个列,表示更改所针对的表,可能存储将要更改的记录的id的列(如果是新记录则为null),更改时存储的日期时间列,以及用于存储已更改记录的xml的列(可以序列化我的数据对象).由于我不需要历史记录,因此在批准更改后,将更新真实表并删除PendingChange记录.

有关该方法的任何想法?

database-design

40
推荐指数
3
解决办法
1万
查看次数

标签 统计

database-design ×1