MySQL:我的教授想要一个没有主键的表

标签 mysql sql

<分区>

我是学计算机的,最近在考试的时候遇到了如下问题:

“编写创建此 ER 模型的 SQL 查询。”

该模型有三 (3) 个表:personlibrary,第三个表包含分别链接到 person 的 id 的两个外键和库的 id

在中间表(外键表)中,没有指出外键是否为主键,所以我让他确认一下,他告诉我这个表没有主键。

这让我很困惑,拒绝解释更多,只是说“它没有主键也能工作,我们在类里面看到过这个。”

因为该模型是从 phpmyadmin 的设计者 View 中捕获的,并且因为他并没有真正证明。我对此感到怀疑,我认为他尝试过,MySQL 让他这样做,但这是错误的。有人可以更好地解释这个吗?我完全可以接受错误,我只是想知道。

为了更清楚一点,他明确指出根本没有主键,而不是像我想的那样只有两个外键在一起。

最佳答案

“中间”表通常称为连接 表。在这种情况下,它代表人与图书馆之间的关系。当您的老师提到该表没有主键时,可能是该表没有定义正式的主键。当然,MySQL 内部需要为每条记录分配一个唯一的 ID,以便在内部跟踪表。但是可能没有明确的主键。但是,此表中很可能有一个复合 主键,由 people 和 libraries 列的组合组成。而且,这对值也很可能在每一行中都是唯一的,除非可以重复给定的关系。如果存在这样的重复,则该表未被规范化。

关于MySQL:我的教授想要一个没有主键的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46953150/

相关文章:

sql - 多对多关系排序

SQL:如何使用 GROUP BY 获得加权计数?

php - 使用 GROUP SEPARATOR 的 Explode() 函数

mysql - 具有多对多关系的 sphinx 索引

mysql - 分析 Magento 性能

mysql - 如何在 MySQL 中返回数据透视表输出?

php - 为什么PHP版本运行速度比MySQL快

php - MySQL通过PHP更新多行

sql - 如何在现有表上设计这些查询

php - 插入时如何检查mysql数据库列中是否存在值