存储富文本文档

时间:2010-05-01 15:15:08

标签: sql-server sql-server-ce richtext

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

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

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

2 个答案:

答案 0 :(得分:1)

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

Pro DB

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

专业文件系统

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

答案 1 :(得分:1)

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

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

的链接

从我的观点来看,文件流的另一个非常强大的一点就是不会超出SQL Server快速版的大小限制,这可以非常方便