MySQL:我的教授想要一张没有主键的桌子

Ors*_*rsu 2 mysql sql

我正在攻读计算机科学,最近在考试中,我有以下问题:

"编写创建此ER模型的SQL查询."

该模型有三(3)个表:person, library和,第三个表包含两个分别链接在人和id库上的外键id.

在中间表(外键一个)中,没有表明外键是否是主键,所以我让他确定,他告诉我这个表没有主键.

这让我感到困惑,并拒绝解释更多,并且只是说"它没有主键,但我们在课堂上看到了它."

因为这个模型是从phpmyadmin的设计师视角捕获的,因为他没有真正的理由.我对此感到怀疑,我认为他试过了,并且MySQL允许他这样做,但这是错误的.有人能更好地解释一下吗?我完全没错,我只是想知道.

为了让它更清晰一些,他完全没有主键,而不仅仅是像我想的那样只有两个外键.

Tim*_*sen 6

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

  • 从他的字面意思来看,它只能意味着人与他们的图书馆之间存在着重复的关系.例如`Fred`在该联结表中出现两次库`L1`.但如果是这样,那么它就没有正常化,而且设计也不好.如果那个表中有_aren't_重复,那么_is_是一个主键,无论他是否认为它,以及你是否明确定义了一个. (2认同)