用于存储 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 VARCHAR
s。 (因为我们的 URL 是从服务器进入数据库的,所以我们使用 php 的 urlencode
对其进行编码,然后在使用 urldecode
检索它们时对其进行解码。)不要认为还有很多其他需要做的事情 - 你可能可以只需将它们存储为未编码的VARCHAR
s。
【讨论】:
谢谢斯蒂芬,请问为什么在数据库中编码 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 的数据类型的主要内容,如果未能解决你的问题,请参考以下文章