2014-03-31 42 views
0

我想知道在我的軟件中使用像sqllite這樣的多個SQL數據庫文件(我認爲它是基於單個文件?)作爲項目文件是否有意義。項目文件包含基本信息以及包含參數列表(浮點值)和測量數據列表(也稱爲浮點)的多個記錄(光譜)。使用SQL數據庫文件作爲項目文件

我目前使用我自己的二進制格式,這是一個痛苦的維護。我試圖使用XML,它工作得很好,但文件大小爆炸(前500 KB,XML 7.5 MB)。
現在我想知道我是否可以構建SQL數據庫來包含這種信息,並有效地將這些數據加載並保存到我的.NET軟件中。

(我不是非常的SQL經歷),所以:

可以在SQL表包含子表(如在XML的子節點),或者鏈接到其他表?

例如,我可以爲記錄製作一個表格嗎?這張表格有測量數據和參數列表的子表格嗎?

請問這個是不是在存儲空間方面XML更有效率?

+0

*是*,所有這些,數據庫設計的目的。一個表可以通過共享一個公共密鑰值與另一個表建立關係。 (https://www.sqlite.org/foreignkeys.html) –

+0

所以我基本上會做一個大的「測量數據」表,說一個X和Y列和一個外鍵列,我會輸入記錄ID數據點所屬的記錄? – Jens

+1

可能,您需要閱讀關係數據庫設計並選擇最佳模型 –

回答

0

我去了一個SQLite數據庫。它可以使用System.Data.SQLite項目輕鬆實現到.NET中,甚至可以與AnyCPU構建一起使用。

它工作得非常好,性能和存儲空間都很明智。

您仍然需要對不同版本的數據庫進行大量的維護。如果您嘗試使用舊方案將新方案保存到數據庫中,則某些列或表可能不存在。您需要爲此遷移到新的數據庫文件。

真正的優點是,它是一種開放格式,我站在前提的後面,用戶保存的內容是他的內容,並且不需要隱藏在一個模糊的文件結構中,如果後者確實沒有給桌子帶來任何顯着的好處。 如果用戶不能再使用您的軟件,他或她仍然可以使用其他工具(如需要時用於SQLite的數據庫瀏覽器)訪問所有數據。

相關問題