如果没有唯一列可以识别表中的每一行,
然后我的主键至少是一组两个字段。
这是对的吗?
如果它是正确的,那么当我绘制关系图时,我必须强调构成主键的两个属性?
谢谢你
答案 0 :(得分:2)
以下是一些术语:
如果没有“明显”的自然键,整行总是可以作为键 2 。但是,这很少是实用的,在这种情况下,您通常会为了识别行而引入代理键。
Sometimes,但并非总是如此,在现有的自然密钥中引入代理商以及是很有用的。
ER图将清楚地识别PK 3 ,无论是天然的还是替代的,以及它是否是复合的。这看起来如何取决于使用的符号,但PK通常以图形方式绘制,并可能以“PK”为前缀。
1 I.e。如果您要从中删除任何列,它将不再是唯一的。
2 数据库表是“关系”的数学概念的物理表示。由于设置了关系,所以没有任何目的可以有两个相同的行,所以至少整行必须是唯一的(一个元素在集合中或者不是 - 它不能在集合中“两次”,如反对multiset)。
3 假设它不仅仅是实体级别,那么根本不显示任何属性。
答案 1 :(得分:1)
你说的是正确的。从技术上讲,主键和唯一键可以是两个不同的东西。您可以在表或实体上拥有唯一标识该实体的主键。在同一个表中,您可以使用唯一键约束,然后可以使用该约束来确保根据您选择的条件,没有两行最终具有相同的属性。因此,您可以在同一个表上拥有两者主键和唯一约束。 只需在数据库中自动生成一个主键列,然后选择表中要用于强制执行唯一键约束的两列
答案 2 :(得分:0)
如果您没有主键,则可以识别您的数据,但这不符合要求。
作为最佳做法,您可以在桌上使用小学。
首选项是使用自动增量列作为主键