在Rails中,用于存储URL的最佳数据类型是什么,在POSTGRESQL数据库中?

3

在RAILS中,用于存储URL的最佳数据类型是什么?

URL可以是YouTube视频链接或一些网站链接。


您可以通过使用检查约束在text上创建一个域,以确保有效的句法。 - Laurenz Albe
2个回答

7
数据类型取决于您的URL长度。
如果您的url适合255个字符(这是rails在字符串列迁移中设置的默认最大限制), 您可以使用string数据类型(Postgresql中的varchar)。
如果您认为您的url可能超过255个字符,那么请直接使用text,它可以容纳所有的url。

2
如果你和我一样在后面找到了这个问题,请注意,自从9.1版本(可能更早)起,官方文档建议默认使用TEXT类型,除非你有理由限制列中字符的数量(https://www.postgresql.org/docs/9.1/datatype-character.html): - mkingsbu
2
提示:除了使用填充空格类型时增加的存储空间和在存储到长度受限列时检查长度所需的额外CPU周期之外,这三种类型之间没有性能差异。虽然在其他一些数据库系统中,character(n)具有性能优势,但在PostgreSQL中并没有这样的优势;事实上,由于其额外的存储成本,character(n)通常是三种类型中最慢的。在大多数情况下,应该使用text或character varying。 - mkingsbu

1

个人认为没有理由不将它们存储为varchar,因为它们可以允许任何长度的URL。

如果您正在使用迁移,则可以使用string数据类型来实现此目的。

rails g migration CreateURLStorage url:string

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接