mysql - CakePHP 将数据快照保存为 XML/JSON

标签 mysql xml database cakephp

我有一个 CakePHP/MySQL 应用程序,它将作业数据存储在各种表中。

作业数据用于最终生成报告。但是,我需要实现一种创建报告版本的方法,以便在修改作业数据时生成新的报告< em>版本已创建。它必须保留创建的所有版本的副本。

我想我应该通过一个与作业表关联的报告表来解决这个问题,该表获取作业数据的XML快照。每当生成报告时,它都会创建一个新的报告记录,其中包含唯一的ID和关联的作业ID以及当时数据的XML“快照”。

这是一个明智的做法吗?我不愿意将 xml 快照存储为文件,因为将生成数千个报告,并且我希望确保数据库中数据的安全。

最后,我如何最好地将 XML 保存到数据库?我正在使用XML Helper生成数据的 XML,但在保存时遇到问题。我确信这是由于生成的 XML 的大小造成的(我正在测试的作业生成了 600 多行 XML,当手动插入数据库时​​,大小为 41KiB...)。

我的处理方式完全错误吗?感觉是对的,因为我需要存储数据的“快照”,然后可以使用 XML Parser在后期处理中。 JSON 会更实用吗(我不太熟悉如何使用 JSON 数据或者它是否是结构化的......)

如果有人能帮助我解决这个问题,我将不胜感激。

<小时/>

更新:我已经设法让它保存 XML,方法是在保存函数中生成 XML,然后将其添加到保存的 $data 数组中。但它仍在积累存储空间。关于更有效的方法有什么想法吗?

最佳答案

您考虑过阿尔克曼的Revision behavior吗? ?

听起来它可能会满足您的要求(不涉及 XML)。

关于mysql - CakePHP 将数据快照保存为 XML/JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6851654/

相关文章:

MySql 表性能优化 - 哈希作为主键或唯一键

mysql - 2 个不同表的两个不同字段上的内连接

c# - 如何使用 C# 从 XML 中删除重复属性

mysql - 删除整个数据并将新数据加载到服务表中的好方法是什么?

android - 如何按字符串删除 sqlite 表行条目?

MySQL 如果两个日期和时间之间相差 2 小时

xml - Ms Word 2003 和 2007 xml 差异

sql-server - 动态替换 XML DML 中节点的值

java - 是否有在 JSP 上显示数据库更改的最佳实践

python - 与 SSHTunnelForwarder 功能 - 基于方式来维持连接?