在我的應用程序編程經驗中,我一直使用存儲應用程序數據的後端的SQL Server(或Access)數據庫。我現在正在研究一些適用於關係數據庫的業務需求,但它們需要將其存儲在應用程序將創建並加載的單個可移植自定義文件中。我知道這是一個非常常見的概念,它可以讓應用程序保存單個文件或文檔,以便以後加載並繼續使用,但我不確定如何通過複雜的數據實現此目的。想到加密xml,但是如果我不得不首先將它加載到對象中,那麼使用它會非常緩慢,或者可能會消耗大量內存。有什麼選擇?將關係數據存儲在單個專有文件中
回答
當在.NET環境中運行時,我認爲SQL Server Compact值得研究。它基本上是一個迷你SQL Server,不需要安裝和配置爲服務,而是一個你參考的dll。您可以使用正常的數據訪問工具,如linq-to-sql和實體框架。
+1擊敗了我,並且他已經熟悉MSSQL家族。 – 2012-04-24 19:47:39
@Anders Abel - 這聽起來像是會起作用的,除非以下任何一條都不正確。 1. .sdf可以在運行時創建。 2. .sdf可以使用自定義文件擴展名。 3. .sdf可以使用密碼來阻止擁有該文件的某人打開該文件並獲取數據訪問權限。我讀過這些都是真的,請讓我知道如果這是不正確的。 – xr280xr 2012-04-24 21:12:15
我建議你使用SQLLite或Firebird嵌入式數據庫。還有其他選項。它們支持單文件使用,並且會爲您的未來版本模式(升級SQL腳本)提供明確的升級途徑。
我不明白加密如何影響到這一點。
相信這也是一個有效的答案,但我更喜歡這種情況下的MS方法。 +1謝謝。 – xr280xr 2012-05-07 22:29:07
SQLite出現在我的腦海裏。它是基於單個文件的數據庫。這是一個鏈接convert SQL server databases to SQLite。還檢查出Using SQLite in your C# Application
- 1. 鋼軌是否將數據關係存儲在數據庫中?
- 2. 將數據存儲在Redis和/或關係數據庫中
- 3. 在mongodb中存儲關係數據
- 4. 在MongoDB中存儲關係數據(NoSQL)
- 5. 將CDA存儲到關係數據庫
- 6. 將關係數據庫存儲爲XML
- 7. 將數據存儲在文件中(C++)
- 8. 將數據存儲在HTML文件中
- 9. 在python中,關於將數據存儲到文件中
- 10. 將圖像存儲在數據庫或系統文件中?
- 11. 關係數據庫中的WebGraph存儲
- 12. 在Azure上存儲非關係數據
- 13. 在ASP.NET中,將上傳的文件存儲到關係數據庫還是放入文件系統會更好?
- 14. 存儲與單個文件關聯的元數據的方法?
- 15. 將大量關係數據存儲在JavaScript Electron Desktop App中?
- 16. 將關係數據存儲在對象中,覆蓋值
- 17. 我們可以將關係數據存儲在hdfs中
- 18. 將XML存儲在關係數據庫中的基本原理
- 19. 您何時選擇將XML存儲在關係數據庫中?
- 20. 何時將元數據存儲在文件系統而不是數據庫中?
- 21. 數據庫vs文件系統存儲
- 22. 將文件存儲在數據庫中而不是文件系統?
- 23. 將關係數據遷移到事件存儲庫
- 24. 在數據庫中存儲圖像vs在文件系統中存儲
- 25. 在關係數據庫中存儲科學數據
- 26. 在關係數據庫中存儲traceroute數據
- 27. 如何在本地數據存儲中解析關係數據?
- 28. 在關係數據庫查詢中存儲數據
- 29. 將一些關係數據存儲在配置文件中而不是數據庫中
- 30. 將專輯曲目列表存儲在數據庫中
SQLite呢?其基於單個文件的RDBMS – Habib 2012-04-24 19:42:33
SQL Server Compact Edition不適合您嗎? – spender 2012-04-24 19:45:10
爲什麼你必須加密xml? – 2012-04-24 19:46:16