我认为字段类型应该是可变长度的字符串(VARCHAR),但是我应该使用多长?
澄清一下:我想选择一个能够存储平均网址的尺码,而不是真正关心最大可能性。
答案 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个字符长。