gpt4 book ai didi

mysql - 为什么复合主键还在?

转载 作者:IT老高 更新时间:2023-10-28 12:54:35 25 4
gpt4 key购买 nike

我被分配将数据库迁移到中级 ERP。新系统到处使用复合主键,从实用的角度来看,为什么?

与自动生成的 ID 相比,我只能看到负面的方面;

  • 外键变得模糊
  • 更难的迁移或数据库重新设计
  • 随着业务的变化不灵活。 (我的车没有 reg.plate..)
  • 通过约束更好地实现相同的完整性。

又回到了候选键的设计理念,我没看出来。

这是软盘时代的习惯/神器(最小化空间/索引),还是我错过了什么?

//编辑//刚刚找到好的 SO-post:Composite primary keys versus unique object ID field//

最佳答案

当您的主键是非代理的并且本质上是复合键时,复合键是必需的,也就是说,可以分解成几个不相关的部分。

一些现实世界的例子:

  • 多对多链接表,其中主键由相关实体的键组成。

  • tenant_id 是每个实体的主键的一部分并且实体只能在同一租户内链接(受外键约束)时的 Multi-Tenancy 应用程序。

  • 处理第三方数据的应用程序(已提供主键)

请注意,从逻辑上讲,所有这些都可以使用 UNIQUE 约束(除了代理 PRIMARY KEY)来实现。

但是,有一些实现特定的东西:

  • 有些系统不允许 FOREIGN KEY 引用不是 PRIMARY KEY 的任何内容。

  • 一些系统只会在 PRIMARY KEY 上聚集一个表,因此将组合设为 PRIMARY KEY 将提高加入组合的查询的性能。

关于mysql - 为什么复合主键还在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5406037/

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