什么可能是具有weblinks的列的数据类型

时间:2010-09-14 19:13:39

标签: sql sql-server

一个奇怪的问题。如果我有一个带有weblinks列的表,那么可能是数据类型nvarchar或varchar。什么可能是该数据类型的大小?

6 个答案:

答案 0 :(得分:3)

一般情况下,请使用nvarchar What are the main performance differences between varchar and nvarchar SQL Server data types?

RFC2616说没有URL的最大长度,但2000可能是安全的 What is the maximum length of a URL in different browsers?

答案 1 :(得分:1)

您应该使用nvarchar,因为URL名称中允许使用中文国家字符,而varchar无法处理这些字符。最大URL大小为2083个字符(至少在IE中),但您不会经常看到这些字符。如果您想完全确定可以处理所有使用nvarchar(2083)的网址。

答案 2 :(得分:0)

我会说varchar(1000)就够了(当然,除非你要存储一些亚马逊网址):)。您不需要nvarchar,因为国家URL是实验性的,最终会转换为带有特殊字符的拉丁文。

  

通常,Web服务器对真正的URL设置了相当大的长度限制,例如最多2048或4096个字符。

因此,如果您想要安全并且仍然不想使用varchar(max),则可以分别使用varchar(2048)varchar(4096)

答案 3 :(得分:0)

对于包含嵌入URL的数据,您可以使用varchar或nvarchar。 nvarchar和varchar之间的唯一区别是nvarchar是一个本地支持unicode数据的varchar。此外,存储空间更大:varchar是8位,而unicode是16位,因此空间加倍。

答案 4 :(得分:0)

面向未来的解决方案将是nvarchar,因为最近向完整unicode域名的移动是显而易见的,例如, Russia Begins Registering Domains in Cyrillic

答案 5 :(得分:0)

网址受RFC1738

的约束
  

网址仅与图片一起编写   可打印的字符   US-ASCII编码字符集。该   八位字节80-FF十六进制不是
  用于US-ASCII和八位字节00-1F   和7F十六进制代表
  控制字符;这些必须是   编码

这会将所有'weblinks'安全地放在VARCHAR阵营中。使用SQL Server 2008 R2虽然您不必再担心,因为Unicode Compression可用(在Enterprise和DataCenter Editions上)。