我有一个使用 SQL SERVER 2008 的网站,它允许用户上传 excel、word、txt、pdf、媒体文件和其他格式的文件。 (就像Rapishare、Megaupload)
将它们存储到 SQL SERVER 中的最佳方法是什么?
FILESTREAM http://msdn.microsoft.com/en-us/library/gg471497.aspx or VARBINARY(MAX) https://stackoverflow.com/questions/613154/how-to-dump-all-of-our-images-from-a-varbinarymax-field-in-sql2008-to-the-file,但是您应该考虑这样做与将文件存储在文件系统上并且仅将指向数据库中的文件的指针相比的优缺点。
在数据库中存储文件的优点:
- 事务一致性
- 安全性(假设您需要它并且您的数据库无论如何都没有完全开放)
Cons:
- 更大的数据库文件+备份(如果您托管在其他人的存储上,这可能会很昂贵)
- 调试起来更加困难(你不能在 Management Studio 中说“从表中选择文档”并弹出 Word)
- 向用户呈现文档(并允许他们上传)更加困难 - 您必须构建一个应用程序来获取文件并将其存储在数据库中,然后提取文件,而不仅仅是呈现文件系统上文件的链接从数据库中将其呈现给用户。
在 SQL Server 2012 中,文件表 http://msdn.microsoft.com/en-us/library/ff929144.aspx将提供更可用的混合动力。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)