php - 跟踪数据库列值的变化

标签 php database zend-framework updates

我正在使用 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/

相关文章:

php - 使用 Zend_Pdf 创建表格的最简单方法

php - 没有全文支持;必须有有效的 mysql 数据库搜索引擎;哪里可以找到?

javascript - PHP - HTML5 API 上传损坏

php - yii向第三张表插入数据

database - 在构建应用程序时,您首先考虑数据库或对象吗?

php - 数据库 PHP MySQL 中的多个查询

zend-framework - 何时使用哪个 Zend_Db 类? Zend_Db_Select 与 Zend_Db_Table_Abstract

php - 为什么这个 PDO 语句会默默地失败?

php - 在 PHP 中检查链式返回值的最简洁语法是什么?

使用 MVC 范式的数据库应用程序