如何在表中存储URL?

时间:2008-11-05 15:28:59

标签: database-design url

我认为字段类型应该是可变长度的字符串(VARCHAR),但是我应该使用多长?

澄清一下:我想选择一个能够存储平均网址的尺码,而不是真正关心最大可能性。

6 个答案:

答案 0 :(得分:2)

对于I.E.限制为2,083 Characters

似乎大多数其他浏览器没有这样的限制,但如果URL应该与所有浏览器兼容,我会建议2083个字符。

答案 1 :(得分:1)

大小以适应GET请求的允许长度。说2048(那是IE的最大值) http://www.boutell.com/newfaq/misc/urllength.html

在旁注中,如果这些URL中的任何一个是javascript bookmarklets;

javascript:var foo='bar';...alert('Hello World');

如果用户尝试将其添加到收藏夹中,则IE中的 508 字符数量有限制。

答案 2 :(得分:1)

如果您想支持所有现代浏览器,您似乎需要至少190,000的长度。 Click here了解详情。

但是,我认为你可以在2000年没问题。如果客户输入的网址比你更长,你可以责怪他们的错误,他们实际上会为这样做感到内疚。 :)

答案 3 :(得分:1)

虽然浏览器支持包含数千个字符的网址,但这种情况很少见,您自己也说过希望能够存储平均网址。你的场地长度取决于你期望的平均值。您是否主要要存储“主页”(如在用户配置文件中)?或者是深度链接到具有长路径和/或查询字符串的网站上的内容的网址 - 基本上任何网址?

如果是后者(任何网址),请使用此问题的答案中提到的2083号码。请记住,SQL Server中的最大行大小大约为8000字节。如果这是与一堆其他信息相同的表(再次,例如用户配置文件),则可能达到该限制。

对于我自己的项目,通常会有更多关于存储URL的上下文。我通常会想出一个潜在的URL列表,并决定可以容纳所有这些的长度,然后加倍。我通常最终得到一个300或500的字段长度的URL,我不记得曾经有过问题。

答案 4 :(得分:0)

这取决于网址本身。

如果你使用像http://dsddsadashf.fsdfs.fd/fsdfsdfs/dfsdfsdfdsf/ssssdfsdfsd/sdfsdfsdfsd?fsdfsdfsdf=fdfsfsdfs&fsdfsdfsdfsdfs;jsessionid=sdasdsadasdasdfsdvhbdkvhjkdvhsk这样很长的网址,你可以考虑使用CLOB字段;)

答案 5 :(得分:0)

你应该使用文本,因为varchar可能只有255个字符长。文字可能是65536个字符长。