Pro*_*ium 23 php mysql logging frameworks
我必须在PHP中创建一个代码,这将允许我保留MySQL数据库中记录更新的历史记录,以便我可以按日期查找旧版本.
以下是我实际想要实现的例子:http://en.wikipedia.org/w/index.php? title = Tunisia&action = history
数据主要是我们记录的关于公司生成报告和提取指数的数字.
我计划使用codeigniter,因为它很简单,我正在寻找一个框架或开源项目的想法,它使用相同的方法来保存数据库中的修改历史.
wim*_*vds 19
最简单的解决方案(取决于您的特定需求)可能是为您的表添加更新/插入/删除触发器,因此您可以在插入/更新/删除数据时执行额外的日志记录.这样就可以覆盖对数据库的人工干预......
有关详细信息,请查看http://dev.mysql.com/doc/refman/5.1/en/triggers.html.
rek*_*o_t 11
保持版本历史记录的一种简单方法是创建基本相同的表(例如,使用_version后缀).这两个表都有一个版本字段,对于主表,您为每次更新都会增加.版本表将具有复合主键(id, version).
每当您对实际表进行更新时,您还会在版本表中插入包含重复数据的新行.每当您想要查找版本历史记录时,您需要做的就是诸如此类SELECT * FROM content_version WHERE id = CONTENT_ID ORDER BY version.
如果您使用Doctrine ORM之类的东西,它会有一种行为,可以通过事件侦听器自动执行此操作.你可以在这里查看:http://www.doctrine-project.org/documentation/manual/1_2/en/behaviors#core-behaviors : versionable
小智 6
有一个开源(MIT许可证)框架来构建CRM和ERP类型的数据库驱动的Web应用程序.您也可以从SourceFroge上的http://epe.si/下载EPESI:http://sourceforge.net/projects/epesi/
EPESI的CRUD引擎 - 记录浏览器 - 具有非常有效的记录历史以及其他功能,如高级权限系统(下至现场级别)等等.
单个记录集将数据存储在多达10个表中,并且与数据库无关(使用PHPAdoDB).名为recordset_data的表存储"原始"数据和更改历史记录存储在另外2个表中:recordset_edit_history和recordset_edit_history_data.
Record的edit_history具有以下结构:
Record的edit_history_data具有以下结构:
它是一个非常快速和高效的引擎,它存储的变化不是记录,而是存储在单个字段级别.
这并不是记录实际的 SQL 更新。它正在记录数据的更新。它实际上会存储页面的每个修订版本,并且默认情况下仅提供最新版本。用于它的 SQL 代码未存储。
\n\n因此,您将不得不采取类似的方法。每次数据发生变化时,您都需要弄清楚数据是如何变化的并存储这个“补丁”数据。您可能最好存储最新版本,而不是必须完成所有补丁才能获得它。这意味着您将能够看到类似的内容
\n\n! created file\n* added data to cell D4 'product descript' D5 'set of pens' E5 '\xc2\xa35.99'\n* added data to cell D6 'toaster' E5 '\xc2\xa310'\n& changed data in cell D4 'Product Description'\nRun Code Online (Sandbox Code Playgroud)\n\n这些更改中的每一个都需要用时间戳或完成时间来存储。您还需要制定自己的方案来存储数据更改。
\n\n另一个更简单的解决方案是使用 wiki 引擎,如果您愿意在网页中工作,它可以提供您想要的所有功能。您可能需要花费一些时间来使其更好地满足您的需求,让人们从更完整的视图(而不是原始 wiki)对其进行编辑。
\n| 归档时间: |
|
| 查看次数: |
32128 次 |
| 最近记录: |