答案 0 :(得分:50)
如果您准备在存储之前始终对网址进行网址编码(Google提供的示例是中.doc网址编码为%E4%B8%AD.doc),那么您可以安全地使用varchar。如果您希望URL中的非ASCII字符在数据库中保持可读性,那么我建议使用nvarchar。如果你不想被抓住,那就去nvarchar。
由于IE(限制性最强的主流浏览器)不支持超过2083个字符的URL,因此(除了您可能对索引或行长度的任何考虑),您可以使用nvarchar覆盖大多数有用的场景(2083) )。
答案 1 :(得分:10)
您是否会存储多语言网址?如果是,请使用nvarchar
,否则请使用varchar
。
修改:至于长度,since IE limits URLs to being 2,083 characters您可以将其用作字段的最大长度。在这种情况下,您希望使用较低的公分母,因为您的URL应该可以在所有浏览器中使用。实际上,这是一个实际的上限,很可能永远不会包含任何接近甚至IE限制的数据。
答案 2 :(得分:3)
对于类似的事情,我总是谨慎行事并使用nvarchar。
答案 3 :(得分:2)
对于SQL Server,你会想要使用NVARCHAR我曾经想过,因为对于URL中的非罗马字符有计划(如果不是动作)。我现在无法在NVARCHAR over VARCHAR的额外存储要求中看到任何问题。