2013-11-20 66 views
0

今天我們進行了一次討論,主題是我們使用的數據存儲解決方案,即NHibernate。在團隊中,我們強烈反對這種存儲解決方案,因爲我們已經(常常用他的話說)不再花時間調試與代理和向後兼容性相關的事情。基於平面文件的數據存儲與SQL數據庫

在我們使用NHibernate的是一維液壓仿真套件用於模擬河流,水質水量,處理降雨和可以同時支持靜態和動態觸發的液壓結構工作中的應用。用戶定義了代表河流網絡的圖形,在這些圖表上放置結構(並對其進行參數化),定義初始條件(初始水位,污染物水平等)和駕駛數據(降雨量,蒸發量,化學過程等)。我們處理大小表格輸入數據和GIS數據,以及各種「真實世界抽象」對象,如橋樑,湖泊,當地排水位置等等。 我們不斷改進和擴展產品,我們已經有3個版本需要支持,所以向後兼容性是一個重要因素。

現在我不得不承認,我不是一個數據庫的傢伙。我對現有的各種存儲解決方案以及他們的專業和專業知識知之甚少。如果這要取決於上述同事,我們的數據存儲應該重構爲基於平面文件的解決方案存儲,例如使用XML文件。 (雖然我不認爲這個產品會得到這樣的重構,但可能是我們的下一個產品可能會用於完整的基於平板文件的存儲解決方案)

我只是想知道,鑑於上述一般性描述與使用NHibernate(或任何比較解決方案)相比,pro和con的採用基於平面文件的存儲路線會是什麼。我的同事是否有一個很好的觀點,並且平面文件實際上是這種情況下優秀的數據存儲解決方案?或者他是非常有偏見的,主要問題可能是對NHibernate如何工作的理解不足。

+2

你的問題似乎沒有多大意義,因爲你比較蘋果和猩猩。 ASCII是一種文本編碼形式。我沒有注意到任何特定形式的存儲。 –

+0

@Damien_The_Unbeliever,我不得不承認,當我第一次看到你的評論時,我以爲你說過'orangunuts';我不確定我是怎麼得到的,但男人很有趣! –

+0

@Damien_The_Unbeliever我對此感到抱歉。使用ASCII存儲(這是我的同事命名它的方式),我的意思是數據以純文本文件保存。因此,例如,他不想使用帶有MySQL後端的NHibernate,而是希望看到一堆人類可讀的文件。例如,一個參數化的網橋可能是一個文件,或者所有參數化的網橋都會聚合成一個文件。這是否更好地澄清了這個問題? – Xilconic

回答

1

想想這樣吧。如果您有多個用戶共享相同的數據,並且您需要一個存儲庫來提供它,那麼數據庫就是您想要的。如果您正在構建「項目」,就像Visual Studio一樣,基於XML的存儲解決方案可能更合適。用於可移植性和依賴性控制。哦,更不用說部署了。

在我看來,根據關你的解釋,XML是一個比較合適的存儲格式。

+0

應用程序的實際行爲與Visual Studio的說明相似。有一個項目,它有不同的模型,它們又有輸入和輸出數據,這些數據可以相互關聯。它已經實現了對接,就像Visual Studio一樣。不用編譯,我們有模型驗證,並且當你可以運行最終產品時。 – Xilconic

+0

@Xilconic,是的,我認爲XML方法是最合適的。它對用戶來說是本地的,並且可以通過XML進行移植,因此可以輕鬆與未連接到網絡的其他人共享。 –