用于存储 URL 的数据类型

Posted

技术标签:

【中文标题】用于存储 URL 的数据类型【英文标题】:Data Type for storing URLs 【发布时间】:2011-03-22 01:01:57 【问题描述】:

存储 URL 的最佳数据类型是什么?

我需要将图片的文件系统路径保存在数据库中。

【问题讨论】:

哪个数据库? VARCHAR 限制可能会有所不同。 Best database field type for a URL的可能重复 Best database field type for a URL的可能重复 【参考方案1】:

URL 是字符串,长度可变。

如果您的数据库系统支持这一点,请使用 VARCHAR。

【讨论】:

【参考方案2】:

VARCHAR 就足够了。

CHAR 应该用于存储固定长度的字符串。字符串值将在存储到磁盘之前填充空格/空白。如果使用这种类型来存储可变长度的字符串,会浪费大量的磁盘空间。

【讨论】:

CHAR 应该用于存储固定长度的字符串。字符串值将在存储到磁盘之前填充空格/空白。如果用这种类型来存储变长字符串,会浪费很多磁盘空间。【参考方案3】:

VARCHAR2(4000) 足以满足您的需求

【讨论】:

【参考方案4】:

我们倾向于将它们保存为 urlencoded VARCHARs。 (因为我们的 URL 是从服务器进入数据库的,所以我们使用 phpurlencode 对其进行编码,然后在使用 urldecode 检索它们时对其进行解码。)不要认为还有很多其他需要做的事情 - 你可能可以只需将它们存储为未编码的VARCHARs。

【讨论】:

谢谢斯蒂芬,请问为什么在数据库中编码 URL 很有用?【参考方案5】:

varchar。根据您的领域知识选择合适的最大长度。

【讨论】:

抱歉为什么是 varchar 而不仅仅是 char? @GibboK:因为使用char 会浪费大量空间。与固定大小的char 数据类型不同,varchar 在未使用字段的全长时不会存储任何空白字符。 因为 char 是固定长度的,你会浪费很多空间。 varchar 因为数据库可以修剪未使用的空间,除非您的所有 URL 的长度都相同。 @Uzair_07 NVarChar 不是必需的,因为 URI 中有限的可接受字符意味着 unicode 不是必需的。 datatracker.ietf.org/doc/html/rfc3986#section-2

以上是关于用于存储 URL 的数据类型的主要内容,如果未能解决你的问题,请参考以下文章

用于存储纬度和经度的数据类型 [重复]

用于存储布尔值的 MySQL 数据类型

用于存储布尔值的 MySQL 数据类型

用于存储布尔值的 MySQL 数据类型

数据类型,可用于根据会话的到达来存储数据

简单介绍PostgreSQL解析URL的方法