2013-01-11 30 views
0

爲什麼要將序列化對象保存爲數據庫中的二進制文件而不是簡單的數據類型?爲什麼要將序列化的對象保存在數據庫中?

+0

效率?並非所有的對象都是「容易」實例化的,有時使用一點額外空間來存儲整個對象及其內部狀態要比廢棄一堆CPU週期以從單獨的存儲值重新構建它更容易。 –

+2

同樣,自定義數據類型仍然是一個平面記錄。如果你正在序列化一個對象列表呢?如果對象的模式/佈局是動態的呢?這樣做有很多原因,我不認爲這個問題會有一個確切的「正確」答案「 –

+0

因爲他們沒有使用文檔數據庫。^。^ –

回答

2

您可以序列化並存儲對象分層結構 - 例如,一個父對象及其子對象 - 在一個列中,傳統上這種關係需要存儲在多個表中。

0

原因可能是他們在一個數據表中存儲了各種類型,並且有一個字段決定了類型。另一個原因是您可能需要使用一個表支持多個版本的對象。在某些情況下,這是完全可以接受的解決方案

2

如果您不需要對dbms中的數據執行任何操作(即所有查詢都將獲取整個對象),將其存儲爲序列化對象將會很有效。您可以隨時對數據進行規範化(即使它是分層或列表),但如果您總是獲取整個數據,則可以通過存儲您的對象(幾乎)準備好使用,從而跳過某些數據庫操作(例如JOIN)。

相關問題