【发布时间】:2021-09-05 18:13:24
【问题描述】:
我正在尝试了解有关数据库外键的一些信息。
我找不到明确的答案。
外键的定义是这样的,
“外键是一个表中的一个字段或一组字段,它引用另一个表的主键”
好的,我明白了。
然后我们了解使用外键可以在表之间建立的关系类型。
在一对多(1:M)和多对多(M:N)关系中,外键存在重复。
但这怎么可能呢?
如果外键指的是主键,而主键不能有重复,那么外键怎么可以呢?
我很困惑。
有人可以向我解释一下吗?
注意 - 我期待一个共同的答案,而不是 DBMS 特定的答案。
【问题讨论】:
-
很难知道你在哪里弄糊涂了。如果引用表中的两行具有相同的外键值,则表示它们引用了被引用表中的同一行。
-
@WalterMitty 啊,我现在明白了。我想我知道我哪里错了。看到英语不是我的第一语言。在我所见的任何地方,他们在谈论外键时都使用“参考”这个词,然后在谈论关系时使用“关联”。我对“相关”的定义与“参考”不同。如果他们像您一样在关系定义中使用“参考”,我会理解的。非常感谢。
-
这掩盖了许多文献中更深层次的混淆。实体-关系模型中的“关系”与“关系”模型中的外键不在同一抽象级别。事实上,在纯 ER 模型中完全不需要外键。除此之外,大多数 ERD 图实际上是在描述关系模型而不是 ER 模型,而且您有理由在以英语为母语的人之间产生巨大的混淆,更不用说在英语中挣扎的人了。
标签: database database-design foreign-keys