Database design 如何在表中存储URL?

Database design 如何在表中存储URL?,database-design,url,Database Design,Url,我认为字段类型应该是可变长度的字符串(VARCHAR),但是我应该使用什么长度呢 澄清一下:我想选择一个能够存储平均URL的大小,而不是真正关心可能的最大值。例如,限制是 大多数其他浏览器似乎没有这样的限制,但如果URL应该与所有浏览器兼容,我建议使用2083个字符 大多数其他浏览器似乎没有这样的限制,但如果URL应该与所有浏览器兼容,我建议使用2083个字符。这取决于URL本身 如果你使用很长的URL,你可能会考虑CROB字段;p> 这取决于URL本身 如果你使用很长的URL,你可能会考虑CR

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

澄清一下:我想选择一个能够存储平均URL的大小,而不是真正关心可能的最大值。

例如,限制是

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


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

这取决于URL本身


如果你使用很长的URL,你可能会考虑CROB字段;p> 这取决于URL本身


如果你使用很长的URL,你可能会考虑CROB字段;p> 大小以适合GET请求的允许长度。说2048(这是最大值)

另一方面,如果这些URL中有任何一个是javascript bookmarklet

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

如果用户试图将IE中的字符添加到收藏夹中,IE中的字符数限制为508个。

大小以适合GET请求的允许长度。说2048(这是最大值)

另一方面,如果这些URL中有任何一个是javascript bookmarklet

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

如果用户试图将其添加到收藏夹中,IE中的字符数限制为508个。

如果您想支持所有现代浏览器,则需要至少190000个字符。详情请参阅


不过,我想你对2000年没问题。如果客户输入了比这更长的URL,你可以责怪他们犯了错误,他们实际上会因为这样做而感到内疚。:)

如果您想支持所有现代浏览器,您需要至少190000个长度。详情请参阅


不过,我想你对2000年没问题。如果客户输入了比这更长的URL,你可以责怪他们犯了错误,他们实际上会因为这样做而感到内疚。:)

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

如果是后者(任何URL),则使用回答此问题时提到的2083号。但请记住,SQL Server中的最大行大小约为8000字节。如果这与一组其他信息(同样,如用户配置文件)是同一个表,您可能会达到该限制


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

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

如果是后者(任何URL),则使用回答此问题时提到的2083号。但请记住,SQL Server中的最大行大小约为8000字节。如果这与一组其他信息(同样,如用户配置文件)是同一个表,您可能会达到该限制


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

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

您应该使用文本,因为varchar的长度只能是255个字符。文本长度可以是65536个字符。

有查询字符串还是没有?在“?”之后的所有东西都能让URL变得更大。但是有多大?地址栏中已经有200多个字符不适合,你们可以说它很大。通过RFC——并没有限制。然而,按浏览器来说,这是有限制的。“平均”很容易计算。获取一些样本数据。请确保采用平均+2标准偏差来覆盖大多数情况。是否使用查询字符串?在“?”之后的所有东西都能让URL变得更大。但是有多大?地址栏中已经有200多个字符不适合,你们可以说它很大。通过RFC——并没有限制。然而,按浏览器来说,这是有限制的。“平均”很容易计算。获取一些样本数据。确保采用平均+2标准偏差来覆盖大多数情况。