我已經在C#中用mongoDB做了一點工作,但是我的所有代碼仍在開發中。我想知道隨着時間的推移,隨着新屬性的創建,更改和刪除,人們在發展其領域類時發現了哪些有用的模式。我很清楚,我需要對所有存儲的數據運行更新,或者確保我的域名類知道如何處理舊格式的記錄,但是隨着時間的推移,我可以想象如果一個班級知道如何處理,這會變得混亂所有可能的表單格式。.NET中有無模式數據庫類設計的一般模式嗎?
我在想這個嗎?這大多隻是一個使用良好防禦性編程的案例嗎?
我已經在C#中用mongoDB做了一點工作,但是我的所有代碼仍在開發中。我想知道隨着時間的推移,隨着新屬性的創建,更改和刪除,人們在發展其領域類時發現了哪些有用的模式。我很清楚,我需要對所有存儲的數據運行更新,或者確保我的域名類知道如何處理舊格式的記錄,但是隨着時間的推移,我可以想象如果一個班級知道如何處理,這會變得混亂所有可能的表單格式。.NET中有無模式數據庫類設計的一般模式嗎?
我在想這個嗎?這大多隻是一個使用良好防禦性編程的案例嗎?
因此,在許多情況下,甚至不需要對數據運行更新(除非您更改數據類型或您的屬性影響索引)。還有一點是,添加BsonIgnoreExtraElementsAttribute通常是一種很好的做法,特別是如果您擔心經常添加和/或刪除屬性。按照這種做法,您可以提供應用程序的較舊版本和較新版本,以處理所有版本的記錄,享受「無模式」的好處。
我一直在思考,但擔心這不會那麼容易。很高興聽到它似乎是。 – 2012-03-08 15:49:29
相當新的主題,很好的問題..但可能屬於程序員.stackexchange.com,因爲它本質上更概念化,而不是解決一個正常的「問題」。 – NotMe 2012-03-06 23:28:57