Php 数据库条目修改历史记录

Php 数据库条目修改历史记录,php,serialization,storage,history,Php,Serialization,Storage,History,我目前正在开发一个大型管理系统(在PHP中使用Zend框架,但这并不是这个问题的真正解决方案),在这个系统中我必须管理多个条目。每个条目在两个表上都有许多字段和范围,它们是1对多关系(通过单个外键)。第一个表中大约有50个字段,第二个表中有30个字段 我现在正处于对用户所做的不同修改(以及一些自动化任务)进行历史跟踪的阶段。每个条目可以部分或全部回滚到以前的值 我正在考虑使用一个与CMS Typo3中的系统类似的系统。一个表,用于管理具有以下字段的整个历史记录 历史号 入口id 条目表 上次\

我目前正在开发一个大型管理系统(在PHP中使用Zend框架,但这并不是这个问题的真正解决方案),在这个系统中我必须管理多个条目。每个条目在两个表上都有许多字段和范围,它们是1对多关系(通过单个外键)。第一个表中大约有50个字段,第二个表中有30个字段

我现在正处于对用户所做的不同修改(以及一些自动化任务)进行历史跟踪的阶段。每个条目可以部分或全部回滚到以前的值

我正在考虑使用一个与CMS Typo3中的系统类似的系统。一个表,用于管理具有以下字段的整个历史记录

  • 历史号
  • 入口id
  • 条目表
  • 上次\u修改\u时间戳
  • 上次修改用户
  • 资料
数据将以json或xml格式“序列化”

通过这种方法,我担心随着时间的推移,历史记录表的内容会呈指数增长。为了解决这个问题,我想我可以创建一个新的数据库来管理每一年的历史,然后按年份向用户显示历史数据


我正在寻求有关改进此解决方案和简化实施的方法的建议。欢迎提供任何有助于我的建议或文档

我会添加一个阈值,删除或转储到外部文件中所有早于某个时间段的条目。

我会添加一个阈值,删除或转储到外部文件中所有早于某个时间段的条目。

你只是在序列化旧数据吗,假设数据的最新版本在其他表格中?@Chris:是的,我是(过去,我不再从事这个项目)。最新的数据是原始表中的数据。随着时间的推移,您可能会发现模式与历史有差异,如果很多字段都发生了更改,则只会给出部分历史。我正在考虑如何在我正在构建的一些web应用程序中实现历史跟踪/更改(讽刺的是,还使用了PHP/Zend Framework)。我觉得这个想法很有趣。我想知道,您是否必须处理复合条目ID?您是如何解决的?我有一个表有一个复合ID,但我可以很容易地给它一个代理或人工ID。不,我不必使用复合ID,但我会用同样的方法,使用代理ID,你只是序列化旧数据,并假设数据的最新版本在其他表中吗?@Chris:是的,我是(以前,我不再从事此项目)。最新的数据是原始表中的数据。随着时间的推移,您可能会与历史记录存在架构差异,如果许多字段发生更改,则只会提供部分历史记录。我正在考虑如何在我正在构建的某些web应用程序中实现历史记录跟踪/更改(讽刺的是使用PHP/Zend Framework)。我觉得这个想法很有趣。我想知道,你是否必须处理复合项ID以及如何解决它?我有一个表有一个复合ID,但我可以很容易地给它一个代理ID或人工ID。不,我不必使用复合ID,但我会用同样的方法,使用代理ID