加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 什么是postgres中的uuid ossp

发布时间:2020-12-17 03:06:35 所属栏目:百科 来源:网络整理
导读:我在迁移中看到了这一点 enable_extension 'uuid-ossp' 据我所知,uuid是一个基于某些RFC的长唯一字符串,这使得db(在本例中为pg)具有作为uuid的列类型 我的问题是 – 为什么需要这种类型的列而不仅仅是字符串列? 是替换常规整数id列并将uuid作为id而不是?
我在迁移中看到了这一点

enable_extension 'uuid-ossp'

据我所知,uuid是一个基于某些RFC的长唯一字符串,这使得db(在本例中为pg)具有作为uuid的列类型

我的问题是 – 为什么需要这种类型的列而不仅仅是字符串列?
是替换常规整数id列并将uuid作为id而不是?

使用uuid作为id有什么好处而不是只是让字符串类型列包含一个uuid?

解决方法

我希望看到更多的人在这里说话,但我认为uuid的想法是将id列替换为更独特的id,这在你有一个分布式数据库或处理复制时尤其有用.

优点:

>更容易合并数据
>当/必须移动到分布式系统时,更好地扩展
>避免在合并或复制数据时经常发生的Postgres序列问题
>您可以从其他平台生成它们(如果需要,除了数据库之外)
>如果你想混淆你的记录(例如,而不是访问用户/ 1(id),这可能会促使一个好奇的用户尝试用户/ 2,看看他是否可以访问其他人的信息,因为它显然是顺序性质的参数).显然,还有其他方法可以解决这个问题

缺点:

>需要比典型id更大的密钥长度
>通常是非顺序的(如果您订购它可能会导致奇怪的行为,无论如何您可能不应该这样做)
>在排除故障时更难引用(通过长UUID而不是简单的整数id查找)

以下是我发现的一些有价值的资源:

> Peter van Hardenberg(Heroku)对UUID的论证(除此之外,这是一个惊人的演示文稿,你应该观看所有这些)…这是使用UUID而不是ID的部分:http://vimeo.com/61044807#t=15m04s
> Jeff Atwood(以前的StackOverflow)对GUID的论证:http://www.codinghorror.com/blog/2007/03/primary-keys-ids-versus-guids.html
> http://rny.io/rails/postgresql/2013/07/27/use-uuids-in-rails-4-with-postgresql.html
> http://blog.crowdint.com/2013/10/09/using-postgres-uuids-as-primary-keys-on-rails.html

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读