2011-07-27 23 views
0

我有一個CakePHP/MySQL應用程序,它將作業數據存儲在各種表中。CakePHP將數據快照保存爲XML/JSON

作業數據用於最終生成報告。不過,我需要實現創建報告版本因此,如果工作數據被修改,創建一個新的報告版本的方式。它必須保留創建的所有版本的副本。

我想我會由與工作表取任務數據的XML快照相關的報告表處理這個。每當生成一個報告時,它會創建一個新的記錄,其中包含一個唯一的ID和關聯的作業ID以及該點數據的XML「快照」。

這是一個明智的做法嗎?我不願意將xml快照存儲爲文件,因爲會生成幾千個報告,並且希望將數據保存在數據庫中。

最後,我如何最好地將XML保存到數據庫?我使用XML Helper來生成數據的XML,但無法保存。我確定這是由於生成的XML的大小(我測試的作業生成了600多行XML,並且在手動插入到DB中時以41KiB進入)。

我對這個問題完全錯誤嗎?這感覺是對的,因爲我需要存儲數據的「快照」,然後可以在以後的處理中使用XML Parser。 JSON會更實用嗎(我對於如何使用JSON數據以及它是否像結構化一樣都不太熟悉......)

如果有人能幫助我解決這個問題,我將不勝感激。


更新:我已經設法通過其得到它保存XML它保存功能生成,然後將它添加到保存在$ data數組,多數民衆贊成。但它仍然在儲存空間。任何想法更有效地做到這一點?

+0

回覆:[JSON vs XML](http://www.json.org/xml.html) – deizel

回答

1

你考慮過alkemann的Revision behavior嗎?

聽起來像它可能會做你想要的(不涉及XML)。

+1

這看起來像一個更好的選擇。非常感謝! – Marius