【问题标题】:How to store different document types如何存储不同的文档类型
【发布时间】:2012-05-31 17:34:06
【问题描述】:

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

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

【问题讨论】:

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


    【解决方案1】:

    FILESTREAMVARBINARY(MAX),但您应该考虑这样做与将文件存储在文件系统上并仅将文件指针存储在数据库中的利弊。

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

    • 事务一致性
    • 安全性(假设您需要它并且您的数据库并没有完全开放)

    缺点:

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2015-12-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-03-08
        • 2017-01-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多