我正在建立一个网站,显示我们在数据库中的交易变化。例如,如果交易状态从挂起更改为赢,我想显示它,如果值上升或下降,我想显示它,那种事情。此外,如果您打开概述页面,我希望它显示更改的历史记录。所以我需要某种更改日志记录,以便能够查看过去。我该怎么做?
这是一个铁轨项目,但我认为这是无关紧要的。
答案 0 :(得分: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
部分只是用户可读的已更改/已添加/已删除属性值的摘要。
答案 1 :(得分:1)
由于您使用的是Rails,请查看PaperTrail gem。它完全符合您的要求并且构造精美。您只需添加一个回调,以便您的概述页面知道发生了更改。但是对于模型的历史,只需使用内置的PaperTrail功能。