C# 如何在数据库中保存大型html内容?开发CMS

C# 如何在数据库中保存大型html内容?开发CMS,c#,asp.net,sql-server-2005,C#,Asp.net,Sql Server 2005,我正在为我的网站开发内容管理系统。我面临着如何在数据库中保存大型html内容的问题。存储过程将其参数限制为8000个字符,并且不接受任何超过此长度的内容。那个么我怎样才能将我的内容存储在数据库中呢 或者还有其他更好的方法来完成这项工作,在哪里保存html内容。还有,如何存储图像(html内部)或其链接,实现场景是什么 许多CMS系统正在运行,它们是如何实现这一功能的 请提出更好的想法,如何处理这一要求 我正在使用的工具: C#net SQL Server 2005 Asp.net 2.0如果您使

我正在为我的网站开发内容管理系统。我面临着如何在数据库中保存大型html内容的问题。存储过程将其参数限制为8000个字符,并且不接受任何超过此长度的内容。那个么我怎样才能将我的内容存储在数据库中呢

或者还有其他更好的方法来完成这项工作,在哪里保存html内容。还有,如何存储图像(html内部)或其链接,实现场景是什么

许多CMS系统正在运行,它们是如何实现这一功能的

请提出更好的想法,如何处理这一要求

我正在使用的工具: C#net SQL Server 2005
Asp.net 2.0

如果您使用的是SQL Server 2005,为什么不使用
VARCHAR(MAX)
datatype

VARCHAR(MAX)
NVARCHAR(MAX)
可以保存与旧的
TEXT
NTEXT
相同数量的数据(2GB),但它们比
TEXT
/
NTEXT
灵活得多。它们存储在用于其他数据类型的相同类型的数据页中

至于如何处理图像,我的建议是将它们存储在文件系统中,只需使用指向它们的普通
img
标记


这对于CMSE来说是相当典型的,它将文章内容存储在一个表中,该表稍后将嵌入模板的某个地方。尽管像MongoDB这样的文档数据库在这类应用程序中越来越流行

您可能想在这里了解有关大值数据类型的信息-


您可以使用大值数据类型存储多达2^31-1字节的数据。希望这有帮助。

在数据库中使用blob字段(例如MySQL中的BIGTEXT)。然后可以将HTML内容流式传输到数据库字段中。或者,如果要采用documentum类型的方法,请将HTML内容另存为文件,并保留内容在数据库中的位置。如果您想使用hadoop等工具搜索大量内容,后一种方法是很好的。如果一开始你想做一些简单的事情,我会选择blob方法,因为在过去的几年中,在blob中搜索内容已经走了很长的路。但是,请注意,MySQL的群集版本(例如)对您可能需要的某些内容(如xpath)没有很好的支持。

您不应该保存图像、HTML或任何不会在SQL WHERE语句中使用的内容。相反,我会将这些HTML代码片段和图像保存在文件系统中,类似于[PARENT\u TABLE\u NAME].[ROW\u PRIMARY\u KEY].HTML。通过这种方式,您在查询时可以节省数据库时间,因为您可能不会使用带有这些HTML片段的WHERE筛选器,而且您的HTML更新/删除/插入速度可能不会更快,并且可以由操作系统正确缓存。

+1-同意。指定max最多可以提供2^31-1字节(2GB),这应该足够了。+1。这是一个“RTFM”类型的回答,因为OP陈述的限制超出了他的想象,而不是从产品开始(SP的限制参数长度不符合规定)。