如何存储不同的文档类型

时间:2012-05-31 17:34:06

标签: sql-server-2008 file file-upload

我有一个使用SQL SERVER 2008的网站,它允许用户上传excel,word,txt,pdf,媒体文件和其他格式的文件。 (就像Rapishare,Megaupload)

将它们存储到SQL SERVER中的最佳方法是什么?

2 个答案:

答案 0 :(得分:2)

FILESTREAMVARBINARY(MAX),但您应该考虑这样做的优点和缺点,而不是将文件存储在文件系统上,而只是指向数据库中文件的指针。

在数据库中存储文件的优点:

  • 交易一致性
  • 安全性(假设您需要它并且您的数据库无论如何都不是敞开的)

缺点:

  • 更大的数据库文件+备份(如果你在其他人的存储上托管,这可能会很昂贵)
  • 调试起来要困难得多(你不能在Management Studio中说“SELECT doc FROM table”并弹出Word)
  • 更难以向用户呈现文档(并允许他们上传) - 您必须构建一个获取文件并将其存储在数据库中的应用程序,而不是仅仅提供文件系统上文件的链接。从数据库中提取文件以将其呈现给用户。

在SQL Server 2012中,FileTable将提供更加可用的混合。

答案 1 :(得分:1)

由于您使用SQL Server 2008,因此您可能会查看文件流功能。这应该是从文件大小超过1 MB的文件中存储二进制数据的有效方法。