如何使用Zend Framework将用户操作记录到db

时间:2010-07-08 16:13:14

标签: php database-design logging versioning

我正在使用zend框架构建一个cms并实现了一个基于文本的日志,它将记录任何错误,并允许我记录我可能想要记录的任何自定义消息。

作为cms的一部分,我需要为页面,博客等提供一些修订历史记录。我对此的想法是简单地有一个日志表来存储用户,动作,数据时间,sql运行,表名称查询已在和记录上执行。

要获取页面的修订历史记录,您只需查询日志表以查找当前记录的表名和记录ID。按日期排序desc。然后,您可以通过在日志表的sql列中运行update语句来提供仅恢复所需修订的功能。如果它是一个插入然后想出一些东西将插入转换为更新或不允许用户恢复到初始插入。

这是实现这一目标的最佳方式还是我有点简单。

1 个答案:

答案 0 :(得分:3)

最好在要支持修订的表中添加“修订”列,因此该表中的每个文档将有多个修订

您还可以为要激活的修订添加“活动”列,对于同一文档的其他修订,添加0。这样,只需使用WHERE active = 1即可轻松查询要显示的修订版本。它还可以轻松更改哪个版本处于活动状态。

我不建议在日志表中存储完整的SQL语句。这是SQL注入安全风险。