gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 11:27:39 27 4
gpt4 key购买 nike

我在迁移中看到过这个

enable_extension 'uuid-ossp'

据我所知,uuid 是一个基于某些 RFC 的唯一长字符串,这使数据库(在本例中为 pg)能够将列类型作为 uuid

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

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

最佳答案

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

优点:

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

缺点:

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

这里还有一些我认为有值(value)的资源:

关于ruby-on-rails - postgres中的uuid ossp是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21709800/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com