【问题标题】:Storing html content and other documents (pdf, word, excel) in sql server?在sql server中存储html内容和其他文档(pdf、word、excel)?
【发布时间】:2010-12-08 04:59:33
【问题描述】:

什么数据类型最适合存储 html 内容和文档,例如 pdf、excel 文件和 word 文档。我目前正在使用 ntext,但我不确定这是否是存储 html 内容的最佳数据类型。

此外,我目前使用 FCKEditor 将 html 内容保存到 ntext 字段,并将标记与样式一起存储。如果我碰巧将部分描述读入 ListView 的 ItemTemplate 中,内容如下:

<%# Eval("content") %>

它显示内容,但也显示标记。例如,而不是显示:

"This is an html string",它会显示&lt;p&gt;This is and html &lt;b&gt;string&lt;/b&gt;&lt;/p&gt;

【问题讨论】:

    标签: c# asp.net html sql-server tsql


    【解决方案1】:
    • 将 Unicode HTML 存储为 ntext
    • 如果您 110% 确定您只需要 ascii,则可以使用 text 或 varchar。
    • 将二进制文件(pdf、word、excel)存储为二进制 blob

    【讨论】:

    • 当您说 text 时,您的意思是与 ntext 相对吗?如果我的 html 将使用多种语言怎么办?
    • 如果您预计需要 Unicode 支持,请使用 ntext 或 nvarchar。否则,ASCII 将占用更少的空间。
    • 确实如此,但请记住,HTML 通常需要 Unicode。在 SQL Server 2008 中,Unicode 压缩在减少 ASCII 集之外的字符的存储空间方面非常聪明。我这里做了一些评测(应该是前三名):is.gd/4rJ3c我很期待这个。
    【解决方案2】:

    我会将 HTML 存储在 NVARCHAR(MAX) 中(如果您不需要超过 4000 个字符,则更少)。不要使用 TEXT/NTEXT 数据类型,除非您被困在 SQL Server 2000 中。它们已被弃用,并且 MAX 类型的优点使它们的使用变得愚蠢恕我直言。

    我会研究在 SQL Server 2008 中将文件存储为 FILESTREAM。如果您是

    将文件存储在数据库中的好处是您可以获得事务一致性。缺点是您使用更多的数据库空间,这通常是在更昂贵的存储上。您也很难进行调试(您不能只在 Management Studio 中说“SELECT PDFFile FROM Table”,然后期望 Acrobat Reader 弹出并显示您的列的内容)。

    因为在工作中,我不得不向未出生的孩子请求并签署权利以获得更多的 SAN 分配,而在游戏中,我的数据库空间使用量比我的文件空间使用量要多很多 ,我每次都选择基于文件的存储。在工作中,我们的文件系统得到了备份,虽然它不是 100% 与数据库备份同步,但我们看到的文件损坏问题很少不是最终用户的错(并且在没有我们参与的情况下很容易纠正)-零,事实上 - 似乎不值得调查。

    就像我说的,个人喜好。但要提出正确的问题并了解您的目标和局限性。

    【讨论】:

    • 爆炸,亚伦!我只是在输入一个类似的回复:) Stu
    • 我肯定需要超过 400 个字符,而且我没有 sql server 2005,尽管这可能很快就会改变。将它们存储在硬盘驱动器上,然后将指向 html 文档的链接存储在数据字段中并不是一个坏选择。
    • 有了 FileStream 对象,我也可以存储 pdf、excel、word 等文档吗?我也可以将它们存储在文件系统上,对吗?
    • 对不起,应该是 4000,不是 400。我的打字机认为它不必在深夜工作这么辛苦。
    • FileStream 是一个非常大的话题,需要广泛的理解和规划。简而言之,是的,您可以存储可以存储在文件系统中的任何类型的文档,并且可以在文件系统的任何位置分配文件流存储空间(有限制,您可以想象)。如果您使用 SQL Server 2008,我会阅读更多关于 FileStream 的内容,并且真的认为这可能是一个好处:msdn.microsoft.com/en-us/library/bb895234.aspx / msdn.microsoft.com/en-us/library/bb895234.aspx
    猜你喜欢
    • 2011-01-01
    • 2011-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-06
    • 1970-01-01
    • 2011-05-10
    • 2012-10-12
    相关资源
    最近更新 更多