【发布时间】:2013-12-17 05:11:12
【问题描述】:
我的 webapp 的版主可以修改数据库中的一些数据。所有用户都可以看到这些修改。但出于某种原因,我不希望它们立即应用,而是仅在特定操作之后,例如,当我明确接受时。时间线是:
- 表中的字段具有值
PreviousValue。 - 版主请求将此值设为
NewValue。
所有用户继续看到PreviousValue值。 - 我接受更改。
现在所有用户都可以看到值NewValue。
问题是版主可以修改大量表格中的字段。处理这个临时值的最佳方法是什么?我可以想象这些解决方案,但没有一个听起来不错:
- 复制所有表(
MyTable和MyTable_ToApply一起)。 - 添加一个特殊表 (
ToApplyTable),其中包含四个字段:要修改的表、要修改的字段、要修改的条目 ID 和要应用的新值。
你有更好的想法吗?
【问题讨论】:
-
第二种解决方案听起来好多了,但是主键(id)包含多个字段的情况呢?第一个解决方案非常简单,如果记住每个 table_ToApply 只有一个条目,它不会对你产生太大影响。
-
@alkis 实际上,两种解决方案都非常肮脏,因为您强调了其中一个问题。因此我的问题在这里。对于第一个解决方案,它意味着复制所有表,并且我使用的是 ORM,因此我还必须复制所有实体。这真的不能接受。
-
为什么不能有一个保存当前值的字段和一个保存新值的字段,并且每次要接受时,新值替换旧值,并且字段保持新值变为空?
-
@alkis 字段太多(大部分时间无用)!
-
赞成。我真的很想在这个中看到一个好的答案。请在您决定要做什么时发布您的决定。