2010-05-01 75 views
1

這是我今天早些時候詢問的另一個問題的後續。我正在創建一個桌面應用程序,用於存儲在WPF中創建的富文本文檔(在RichTextBox控件中)。該應用程序使用SQL Compact,直到現在,我已經計劃將每個文檔存儲在數據庫中的二進制列中。存儲豐富的文本文檔

我正在重新考慮這種方法。將每個富文本文檔存儲在文件系統中,而不是將其保存到數據庫會是更好的做法嗎?我想我可以將文檔放在與數據庫相同的文件夾中,然後在其數據庫記錄中存儲每個文檔的相對路徑,以及有關文檔的其他信息(標籤等)。

我想知道這種方法的一些優點和缺點,以及通常認爲什麼是這種事情的最佳實踐的想法。謝謝你的幫助。

回答

1

我個人傾向於使用文件系統

臨DB

  • 可以搜索使用SQL搜索功能(可能有點靠不住與RTF監守的控制代碼)
  • 備份MDF文件&你已經在一個地方支持所有文檔
  • 可以很容易地實現版本
  • 更容易保持文件數據&東西由外部應用程序(和人)是

Pro的文件系統

  • 可加載引用它在同步
  • 一個損壞的DB殺死所有的文件
  • 可通過文件系統工具/索引器搜索
  • 不太複雜的IO代碼需要
  • 熟悉的用戶
  • 路徑可以指向任何地方
  • 更便攜的IO代碼
+0

Thannks - 我會在接受答案之前將其打開一段時間,但我已經投了贊成票。 – 2010-05-01 15:54:14

+0

我用文件系統去了,它運行得非常好。我將每個FlowDocument存儲在一個單獨的XPS文件中; XPS文件名稱與我用作相應數據庫記錄的主鍵的GUID相同。 – 2010-05-03 20:59:09

1

不知道爲什麼它沒有被前面提到的,但你看(即另一臺機器/另一個邏輯驅動器上) SQL Server 2008及更高版本中可用的FILESTREAM數據類型?

它結合了文件系統存儲的優點和數據庫存儲的優點。下面是一個MS白皮書的鏈接http://download.microsoft.com/download/a/c/d/acd8e043-d69b-4f09-bc9e-4168b65aaa71/SQL2008UnstructuredData.doc

與FILESTREAM還有很強烈的一點,從我的角度來看是不吃進的SQL Server Express版本的大小限制,可以非常方便

+0

非常有趣 - 謝謝 – 2010-05-07 20:52:50