2009-07-21 85 views

回答

42

如果您准备在存储这些URL之前始终对您的URL进行URL编码(Google提供的一个示例是中.doc URL编码为%E4%B8%AD.doc),那么您可以安全地使用varchar。如果你想让URL中的非ASCII字符在数据库中保持可读性,那么我推荐nvarchar。如果你不想被抓到,那么去nvarchar。由于IE(主流浏览器中限制最多的)不支持长度超过2083个字符的URL,因此(除了可能对索引或行长度所做的任何考虑事项外),您可以使用nvarchar覆盖大多数有用的方案( 2083)。

10

你会存储多语言网址吗?如果是这样,请使用nvarchar,否则使用varchar

编辑:至于长度,since IE limits URLs to being 2,083 characters你可以使用它作为你的领域的最大长度。在这些情况下,您希望使用较低的公分母,因为您的网址应该可以在所有浏览器中使用。真的,这是一个实际的上限,很可能永远不会包含任何接近IE限制的数据。

+0

其中一个用途是OpenID网址,因此它将为任何有效的网址开放。 – 2009-07-21 15:28:51

+1

然后使用nvarchar。 – 2009-07-21 15:31:55

+1

长度如何? – 2009-07-21 15:33:16

3

对于这样的事情,我会一直犯错,并使用nvarchar。

2

对于SQL Server,您会想要使用NVARCHAR我会想到,因为有计划(如果不是已经有操作)正在为URL中的非罗马字符进行。在NVARCHAR over VARCHAR的额外存储需求中,我目前无法真正看到任何问题。

相关问题