我正在使用 Zend 框架开发基于 Web 的应用程序。
我正在寻找一种方法来保存对一系列列所做的更新历史记录。
用例: 用户可以添加具有 5 个属性的项目。允许用户更新这 5 个属性。我需要跟踪他对这 5 个属性所做的所有更新。
我想到的方法是添加一个名为 log 的新表,该表存储旧值、新值、列名、itemID 和时间戳。
最好的方法是什么?是否有任何现有的方法/选项/示例?
谢谢,
最佳答案
您可能正在寻找的是审计日志。您可以在 MySQL 数据库上使用触发器创建一个。
如何执行此操作的示例如下:http://ronaldbradford.com/blog/auditing-your-mysql-data-2008-07-15/
在您下面的评论中,您补充说数据库不是“固定的”。在这种情况下,您必须将任何更改复制到表中,以便将它们应用到审计表,这样任何新添加的列也将添加到日志中。
您可以考虑将其记录在您的应用程序中(因为您为此问题选择的标签似乎是建议)——但请记住,这意味着在某些情况下您的日志可能无法提供完整的答案。触发器、存储过程和数据库中的任何手动干预都不会被记录下来……所以如果您选择沿着这条路走下去,请小心。
关于php - 跟踪数据库列值的变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4650880/