我有一个 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/