2012-10-27 8 views

回答

5

內容對象由多個持久記錄組成。對於包含文件系統上的二進制Blob文件的圖像和文件。

當內容對象發生更改時,只有受更改影響的持久性記錄作爲事務的一部分寫入。那時候舊紀錄不會被清除,所以你確實得到了多份,是的。

因此,每次更改文件或圖像的二進制內容時,都會使用該新數據創建新副本,並保留舊版本。但是,如果您只更改標題或發佈日期,則blob文件未觸及,您將不會得到其他未更改數據的額外副本。

您使用ZODB packing刪除舊的交易數據。請注意,通過打包,您還可以取消撤銷舊包裝已被刪除的更改的功能。

+0

如果可能的話,我會給予雙倍提高;)非常好的答案! –

0

如果以任何方式更改內容(或只是重新保存它),則會創建該對象的副本(以便稍後進行撤消)。如果只更改元數據(如標題),則通常不會複製該對象。

無論何時打包數據庫,都會刪除這些重複的「備份」副本(以及對它們的撤銷選項)。

存在依賴於持久化對象的規則:這幾乎都是普通的Zope(和Plone)對象。有些例外可能存在,但它們很少見。