algorithm - 你喜欢你的主键吗?

标签 algorithm database-design relational-database primary-key ddl

<分区>

在我的团队中进行的相当热烈的讨论中,我不得不思考大多数人喜欢的主键。我们有以下小组-

  1. Int/BigInt 自动增量是足够好的主键。
  2. 至少应该有 3 个列组成主键。
  3. Id、GUID 和人类可读的行标识符都应该区别对待。

PK 的最佳方法是什么?如果你能证明你的观点是正确的,那就太棒了。有没有比上面更好的方法?

编辑:任何人都有一个简单的示例/算法来为可扩展的行生成人类可读的标识符?

最佳答案

如果您打算在数据库与偶尔连接的应用程序之间进行任何同步,那么您应该使用 GUID 作为主键。这对调试来说有点痛苦,所以除此之外,我倾向于坚持使用自动增量的整数。

自动增量整数应该是您的默认值,使用它们应该是合理的。

关于algorithm - 你喜欢你的主键吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/404040/

相关文章:

sql - 如何编写一个函数来比较和排列多组 bool (真/假)答案?

mysql - mysql中房屋销售网站的数据库设计

sqlite - 在 CHECK 约束中使用子查询的替代方法?

java - spring hibernate实现一对一关系

arrays - 使用多个索引 :[Int] 枚举多线性映射的 Swift 算法

c - Dijkstra算法如何存储相邻节点?

swift - 我的 Swift 代码出现错误无法形成上限 < 下限的范围

javascript - 将多个数据库项目优化计算到一个配置中

sql - 合并包含相同字段的数据库表

mysql - 我应该在这个例子中使用外键吗?