繁体   English   中英

主键:对同一数据库中的某些表使用 UUID 而对其他表使用 INT 是不好的做法吗?

[英]Primary keys: is it bad practice to use a UUID for some tables and INT for other tables in the same database?

我正在 postgresql 中创建一个规范化的数据库,对于几个表,我需要能够从客户端生成 PK。 我还与另一个数据库进行交互,因此 UUID 在这方面也会有所帮助。 为了保持一致性,我打算在每个表中使用 UUID,但我有第二个想法,因为这对我的大多数表来说似乎有点矫枉过正。 我想也许我会对这些表使用整数 PK,对“特殊”表使用 UUID PK,但我觉得有点奇怪。 这是不好的做法吗?

我想不出为什么这是一种不好的做法。 不寻常的是。 但是,如果您有理由在某些情况下更喜欢整数而在其他情况下更喜欢 UUID,那么这可能是有道理的。

我更喜欢整数作为主键。 它们占用更少的空间——如果许多其他表正在使用它们,这可以是一个考虑因素。 我发现在查看值时,它们更容易正确键入和直观地比较。

但是,它们也会对一些信息进行编码,通常是插入到表中的顺序。 那是一把双刃剑。 如果您想跟踪插入顺序,这可能是一件好事。 或者,如果您不希望人们估计您的桌子的大小,这可能是一件坏事。

当我有 UUID 时,我可能还有整数主键,将 UUID 保存在单独的唯一列中。 这样可以提高外键引用的效率。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM