1

这是我今天早些时候提出的另一个问题的后续。我正在创建一个桌面应用程序,用于存储在 WPF 中创建的富文本文档(在 RichTextBox 控件中)。该应用程序使用 SQL Compact,到目前为止,我一直计划将每个文档存储在数据库的二进制列中。

我正在重新考虑这种方法。将每个富文本文档存储在文件系统中而不是将其保存到数据库中会更好吗?我想我可以将文档与数据库放在同一个文件夹中,然后在其数据库记录中存储每个文档的相对路径,以及有关文档的其他信息(标签等)。

我想知道这种方法的一些优点和缺点,以及关于这种事情通常被认为是最佳实践的想法。谢谢你的帮助。

4

2 回答 2

1

我个人倾向于使用文件系统

临数据库

  • 可以使用 SQL 搜索功能进行搜索(由于控制代码的原因,使用 RTF 可能会有点不稳定)
  • 备份 MDF 文件,您已将所有文档备份在一个地方
  • 可以轻松实现版本控制
  • 更容易保持文件数据和引用它的东西同步

专业文件系统

  • 可由外部应用程序(和人员)加载
  • 损坏的数据库会杀死您的所有文档
  • 可通过文件系统工具/索引器搜索
  • 需要不太复杂的 IO 代码
  • 用户熟悉
  • 路径可以指向任何地方(即在另一台机器/另一个逻辑驱动器上)
  • 更便携的 IO 代码
于 2010-05-01T15:26:51.857 回答
1

不知道为什么之前没有提到它,但您是否查看过 SQL Server 2008 及更高版本中可用的 FILESTREAM 数据类型?

它结合了文件系统存储的优势和数据库存储的优势。这是 MS 白皮书的链接http://download.microsoft.com/download/a/c/d/acd8e043-d69b-4f09-bc9e-4168b65aaa71/SQL2008UnstructuredData.doc

从我的角度来看,filestream 的另一个优点是它不会影响 SQL Server 快速版本的大小限制,这非常方便

于 2010-05-04T07:48:08.650 回答