Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.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/5/url/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
Sql server URL的最佳列类型是什么?_Sql Server_Url_Column Types - Fatal编程技术网

Sql server URL的最佳列类型是什么?

Sql server URL的最佳列类型是什么?,sql-server,url,column-types,Sql Server,Url,Column Types,SQL Server URL字段的最佳列类型是什么 类型:VARCHAR还是NVARCHAR 长度 类似。您将存储多语言URL吗?如果是,请使用nvarchar,否则请使用varchar 编辑:至于长度,您可以将其用作字段的最大长度。在这种情况下,您希望使用较低的公分母,因为您的URL应该在所有浏览器中都可用。实际上,这是一个实用的字段上限,它很可能永远不会包含任何接近IE限制的数据。对于这样的情况,我总是会谨慎行事,使用nvarchar 对于SQL Server,我想您会希望使用NVARCHA

SQL Server URL字段的最佳列类型是什么

类型:VARCHAR还是NVARCHAR

长度


类似。

您将存储多语言URL吗?如果是,请使用
nvarchar
,否则请使用
varchar


编辑:至于长度,您可以将其用作字段的最大长度。在这种情况下,您希望使用较低的公分母,因为您的URL应该在所有浏览器中都可用。实际上,这是一个实用的字段上限,它很可能永远不会包含任何接近IE限制的数据。

对于这样的情况,我总是会谨慎行事,使用nvarchar

对于SQL Server,我想您会希望使用NVARCHAR,因为URL中的非罗马字符已经有了计划(如果还没有行动的话)。现在,我看不出NVARCHAR对VARCHAR的额外存储要求有什么问题。

如果你准备在存储URL之前总是对URL进行URL编码(谷歌提供的一个例子是中.文档URL编码为%E4%B8%AD.doc),则您可以安全地使用varchar。如果您希望URL中的非ASCII字符在数据库中保持可读性,那么我建议使用nvarchar。如果你不想被抓出来,那就去找nvarchar


由于IE(主流浏览器中限制最严格的浏览器)不支持长度超过2083个字符的URL,因此(除了索引或行长度方面的任何考虑之外),您可以使用nvarchar(2083)覆盖最有用的场景。

其中一种用法是用于OpenID URL,因此,它将为任何有效的URL打开。HTTP的RFC没有URL的最大长度。微软有一个MSDN KB,其最大长度为2083(至少对于IE8之前的所有IE;在IE8中没有关于最大长度的单词)。对于其他浏览器,请参见,虽然这已经过时(不包括Firefox 2或3),但它应该表明浏览器没有使用标准长度。2083是IE支持的最大长度,是主流浏览器中限制最严格的。但他们并没有弄清楚这是前URL编码还是后URL编码……所以呢?您建议的长度是多少?大型nvarchar或varchar列可能会导致SQL Server中的索引和行大小问题。这取决于很多因素——你想要实现什么,表中还有什么。很难给出一个一概而论的答案。如果你想覆盖你的基础,那么就选择nvarchar(2083)并且不进行URL编码。仅仅使用varchar(max)/nvarchar(max)有什么缺点吗?这取决于URL存储的内容。如果我只是用它来指向其他网站,我通常会用300个字符。如果我打算用它更深入地指向一个站点,或者作为文件的链接,等等,我通常使用2000。我从来没有遇到过URL超过那么多字符(甚至接近它)的情况,但我总是在谨慎方面犯错误。现在驾驶空间很便宜,我不再像以前那样担心空间限制。