【问题标题】:Can one primary key be null when one entity has composite primary keys?当一个实体具有复合主键时,一个主键可以为空吗?
【发布时间】:2022-01-27 14:41:33
【问题描述】:

例如; “图书馆必须跟踪每本书的状态、位置、书名、第一作者以及损失和延迟归还的价格(成本)。图书将由其 ISBN 标识。为了允许多份同一本书,每本书都有一个唯一的 ID 号"

因此,在上述情况下,我得到 ISBN 和唯一 ID 是“Book”实体的复合主键。如果一本书有多个副本,则考虑唯一 ID。每当一本书没有多个副本时,就不会考虑唯一 ID。那么,唯一ID可以为空吗?

【问题讨论】:

  • 您将拥有 1 份副本,但不是吗?

标签: mysql mysql-workbench entity-relationship


【解决方案1】:
  • 主键不能为空;这只是定义的一部分。
  • 一张表可以有多个“候选键”,但只能指定一个作为主键;这就是本文中“主要”的含义。
  • null 和重复值是完全不同的事情; null 表示“我不知道值”,或“此列不适用于此行”,或类似的想法。
  • 说一列有时是唯一的,有时是没有意义的。唯一意味着每个可能的行都有不同的值

您可能试图描述的是这样一种情况:ISBN AND 和标识符的组合对于每一行都是唯一的,但每行都不是唯一的。在这种情况下,您有一个“复合键”——由多个列组成 的单个键。为了用作主键,该复合键不能包含空值;但这没关系,只需为每本书的第一个副本分配 0 或 1 值即可。

该要求的另一种解释是标识符列独立是唯一的,并且独立于 ISBN。在这种情况下,它永远不会有空值,并且适合作为自己的主键。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-02-16
    • 1970-01-01
    • 2020-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-31
    • 2014-01-11
    相关资源
    最近更新 更多