SQL Server 的 URL 字段的最佳列类型是什么?
类型:VARCHAR 还是 NVARCHAR?
长度?
MySQL 的类似问题。
如果您准备在存储 URL 之前始终对其进行 URL 编码(Google 提出的一个示例是中.doc URL 编码为 %E4%B8%AD.doc),那么您可以安全地使用 varchar。如果您希望 URL 中的非 ASCII 字符在数据库中保持可读,那么我建议您使用 nvarchar。如果您不想被抓到,请选择 nvarchar。
由于 IE(最严格的主流浏览器)不支持长度超过 2083 个字符的 URL,因此(除了您可能对索引或行长度有任何考虑之外),您可以使用 nvarchar(2083) 覆盖大多数有用的场景。
您会存储多语言 URL 吗?如果是,则使用nvarchar
,否则使用varchar
。
编辑:至于长度,由于 IE 将 URL 限制为 2,083 个字符,您可以将其用作字段的最大长度。在这种情况下,您希望使用较低的公分母,因为您的 URL 应该可以在所有浏览器中使用。实际上,这是一个很可能永远不会包含数据的领域的实用上限,甚至会接近 IE 的限制。
对于类似的事情,我总是会谨慎行事并使用 nvarchar。
对于 SQL Server,您可能希望使用 NVARCHAR,因为 URL 中的非罗马字符正在制定计划(如果尚未采取行动的话)。这些天来,在 NVARCHAR 对 VARCHAR 的额外存储要求方面,我真的看不出任何问题。