gpt4 book ai didi

database - 实体中的主键

转载 作者:搜寻专家 更新时间:2023-10-30 22:16:02 25 4
gpt4 key购买 nike

如果没有唯一的列可以标识表中的每一行,

那么我的主键将至少是一组两个字段。

对吗?

如果是正确的,那我在画关系图的时候,要在构成主键的两个属性下划线吗?

谢谢

最佳答案

这里是一些术语:

  • super 键 是一组列,这些列组合在一起可以唯一标识行。
  • 候选键(或简称:“键”)是最小的1 super 键。有时一个键只包含一列,有时它包含几列(在这种情况下称为“复合”)。
  • practical reasons ,我们将 key 分类为primaryalternate。一张表有一个主键和零个或多个备用键。
  • 如果 key 源自数据的固有属性,则它是“自然”。换句话说,它“意味着”某种东西。
  • 如果键本身没有任何意义,它就是“代理” - 它仅用于识别目的。它通常实现为一个自动递增的整数,但可能还有其他策略,例如 GUID(对复制有用)。自然键是复合的很常见,但代理项几乎不会发生这种情况。

如果没有“明显”的自然键,整行总可以充当键2。但是,这几乎不实用,在这种情况下,您通常会引入一个代理键来仅用于标识行。

Sometimes ,但并非总是如此,现有自然键外还引入代理项很有用。

ER 图将清楚地识别 PK3,是天然的还是替代的,是否是复合的。这究竟是什么样子取决于所使用的符号,但 PK 通常会以图形不同的方式绘制,并可能以“PK”为前缀。


1 即如果您要从中删除任何列,它将不再是唯一的。

2 数据库表是“关系”数学概念的物理表示。由于设置了关系,因此拥有两个相同的行没有任何意义,因此至少整行必须是唯一的(一个元素要么在集合中,要么不在集合中 - 它不能在集合中“两次”,因为反对多重集)。

3 假设它不仅仅是实体级别的,因此根本不显示任何属性。

关于database - 实体中的主键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12376896/

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