Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 什么';在数据库中存储格式化内容的标准方法是什么?_Javascript_Html_Sql Server_Asp.net Mvc_Database - Fatal编程技术网

Javascript 什么';在数据库中存储格式化内容的标准方法是什么?

Javascript 什么';在数据库中存储格式化内容的标准方法是什么?,javascript,html,sql-server,asp.net-mvc,database,Javascript,Html,Sql Server,Asp.net Mvc,Database,我有一个应用程序,它使用WYSIWYG html编辑器存储和检索大量用户格式化的内容。有点像这样保存格式化的问题和答案 做这件事的标准方法是什么 编辑: 我只是想澄清一下:我不是在询问数据库中要存储的数据类型。相反,我关心的是在数据库中存储带有样式信息的html标记块。这只是文本数据。通常,VARCHAR是最好的 更新: 是的,如果您想支持Unicode(在本例中您可能会这样做),那么将其设置为NVARCHAR 至于OPs更新,你想象的困难其实并不存在。HTML是文本数据,因此它进入文本字段。您

我有一个应用程序,它使用WYSIWYG html编辑器存储和检索大量用户格式化的内容。有点像这样保存格式化的问题和答案

做这件事的标准方法是什么

编辑:


我只是想澄清一下:我不是在询问数据库中要存储的数据类型。相反,我关心的是在数据库中存储带有样式信息的html标记块。

这只是文本数据。通常,
VARCHAR
是最好的

更新: 是的,如果您想支持Unicode(在本例中您可能会这样做),那么将其设置为
NVARCHAR

至于OPs更新,你想象的困难其实并不存在。HTML是文本数据,因此它进入文本字段。您根本不想将格式与文本分开

这是答案,但这并不是你对这件事担忧的结束。这样做让您感到困扰的原因可能是数据库使用结构化数据(所有数据都在命名和类型化列中),而这是非结构化内容。这意味着此字段中的数据不是以DB友好的方式存储的。您应该尽可能多地构建数据结构,因为它允许您按字段值快速搜索。我们将用户键入的任何内容都放入该字段,如果我们需要在该字段中查找数据,我们需要搜索整个字段以找到它。这是一个非常缓慢的过程,更糟糕的是,我们不仅要搜索文本,还要搜索文本的格式

这都是真实的,不好的,所以我们应该尽量避免这样做。如果您可以避免允许用户输入自由格式的文本,那么请务必这样做。从那时起,您就可以快速一致地将HTML格式应用于客户端应用程序中的数据

但是,这个问题的基础是您需要一个非结构化内容字段,并且您正在询问如何存储该非结构化内容。这个答案非常简单(尽管我猜我第一次尝试时没有100%正确),使用
NVARCHAR

尽管存储这些非结构化内容不利于数据库,但有时也会对网站友好,这是您描述的情况下的常见做法。需要记住的是,我们希望避免搜索这种非结构化数据。为此,我们可能需要采取相当极端的措施

许多应用程序将通过创建一个单独的表,解析HTML中的文本,并将每个单独的单词(以及原始表条目的外键)插入到另一个表中以供以后搜索来解决这个搜索缓慢的问题。即使这样做,您仍希望保留原始格式化文本以供显示之用

我通常会进行这种类型的优化
第二阶段
,因为网站在没有这种优化的情况下会正常运行;这只会变得更慢,而且在网站有足够的内容可供搜索之前,人们甚至不会注意到这一点


另一件需要注意的事情是,这通常不是HTML格式的文本。有几种常用的格式,如BBCode或Markdown。不过,SQL并不在意,对于SQL server来说,这些都只是文本。

问题的标题可以存储在
VARCHAR
中,问题可以存储在
文本中


在这里,请查看SQL Server的数据类型:

VARCHAR
通常不是最好的,因为我们不知道字符是否包含unicode。不要在SQL Server上使用w3schools作为参考,请转到特定版本的正确MSDN页以查看有效的数据类型。@EkoostikMartin抱歉,我已经删除了这个链接。没有其他人发布的原因是因为已经给出了最好的答案(然后详细阐述)。如果你不相信我,那就去看看SourceForge的所有PHP项目。如果它们接受格式化输入,则使用VARCHAR或文本字段(或NVARCHAR,NTEXT),而实际上存储它的方式没有什么特别之处。如果您需要有关此过程的更多信息,那么我们需要对您的问题进行更多解释。