1

我正在建立一个网站,显示我们在数据库中的交易变化。例如,如果一个交易状态从pending变为win,我想显示它,如果值上升或下降,我想显示它,那种东西。此外,如果您打开概览页面,我希望它显示更改历史记录。所以我需要某种变更日志,以便能够查看过去。我该怎么做呢?

这是一个 Rails 项目,但我认为这无关紧要。

4

2 回答 2

2

我怀疑这个问题是否有任何通用的解决方案。

你可以推出自己的。首先考虑所有需要更改日志记录的对象。有几种类型?您预计多久会发生一次变化?这将帮助您估计需要处理的潜在更改吞吐量数量。如果没有太多,只需将它们粘贴到数据库中。如果您生成很多,请尝试存储到逗号分隔值文件。

我之前实施过类似的系统。我有 3 种类型的更改:1)属性值更改,2)将值添加到列表中,3)从列表中删除值。

我使用以下格式,存储在日志文件中:

//For type 1)
1,2011/01/01 00:00:00,MyObject,myProperty,oldValue,newValue
//For type 2)
2,2011/01/01 00:00:00,MyObject,myListProperty,addedValue
//For type 3)
3,2011/01/01 00:00:00,MyObject,myListProperty,removedValue

这捕获了我需要的大部分信息。这些value部分只是更改/添加/删除属性值的一些用户可读摘要。

于 2011-01-14T12:25:07.553 回答
1

纸迹宝石

由于您使用的是 Rails,请查看PaperTrail gem。它完全符合您的要求,并且结构精美。您只需要添加一个回调,以便您的概览页面知道发生了更改。但是对于模型的历史,只需使用内置的 PaperTrail 功能。

于 2013-10-22T03:16:25.877 回答