如果您准备在存储URL之前始终对其进行URL编码(谷歌举了一个例子,中.doc URL编码为%E4%B8%AD.doc),那么使用varchar是安全的。如果您希望数据库中的非ASCII字符保持可读性,则建议使用nvarchar。如果您不想被抓住,那么使用nvarchar是更好的选择。
由于IE(主流浏览器中最受限制的浏览器)不支持超过2083个字符的URL(除了您可能需要考虑索引或行长度外),则nvarchar(2083)可以满足大多数有用的场景。
如果您将存储多语言URL,那么,请使用nvarchar
,否则请使用varchar
。
编辑:关于长度,因为IE将URL限制在2,083个字符内,您可以将其作为字段的最大长度。 在这种情况下,您应该使用较低的通用分母,因为您的URL应该在所有浏览器中可用。 实际上,这是对一个字段的实际限制,而该字段很可能永远不会包含任何接近甚至达到IE限制的数据。
对于这种情况,我总是倾向于谨慎起见并使用nvarchar。
对于SQL Server,我认为您需要使用NVARCHAR,因为计划(如果还没有实施)中将在URL中使用非罗马字符。如今,我无法看到NVARCHAR相对于VARCHAR的额外存储要求会带来任何问题。