2014-01-17 64 views
0

我想在數據庫中存儲來自特定類(「MyClass」)的信息。所以,我得到兩個選項設計討論:存儲序列化類還是創建特定表?

  1. 序列化對象(MyClass類),並將其存儲在我的現有表二進制字段。
  2. 創建一個新表,其中包含與MyClass包含的字段數相同的字段。

哪種方法最好? 我擔心未來會改變MyClass的定義。所以,如果MyClass更改,我將無法從我現有的表中反序列化二進制對象。另一方面,創建一個新表似乎更加複雜,並且在MyClass更改時需要修改表定義。

回答

2

將您的課程保留在每個屬性列中的表格中。這給了你更多的控制,並且可以節省你編寫大量代碼,因爲數據庫引擎是專門爲讀寫數據而設計的。

想一想:如果您使用序列化,您將如何檢索與特定搜索值匹配的一組行的數據?唯一的方法是讀取每一行,反序列化它,測試您的搜索條件,然後繼續閱讀下一條記錄,直到您閱讀完所有條目。

對於一個數據庫,您只需指定一個WHERE子句,即可得到您要查找的行。在後臺,許多相同類型的工作可能正在進行,但這一切都是通過代碼完成的,您不必編寫或維護。