一个奇怪的问题。如果我有一个带有weblinks列的表,那么可能是数据类型nvarchar或varchar。什么可能是该数据类型的大小?
答案 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上)。