0

我很困惑如何识别第一范式中的主键

在第一个示例中:我可以理解 SR_ID 和 Cus_No 是主键的原因。但是为什么 Mngr_ID 不是主键呢?为什么 Mngr_ID 取决于 SR_ID 和 Cus_No 在此处输入图像描述

在另一个例子中:为什么 staff_No 不是主键?因为在讲座中,我教授考的第一步就是从找PK开始。但我不知道该怎么做?在本例中,所有其他属性都可以依赖于 property_no 和 IDate,因此它们是 pk。但我不明白为什么 staff_no 依赖于 property_no 和 IDate

在此处输入图像描述 在此处输入图像描述

4

1 回答 1

-1

那么主键是使表中的行唯一的列或列组合。在第一个示例中,mgr Id 不是密钥的一部分,因为经理直接分配给用户,因此每个用户只有一个经理。因此,如果您了解用户,则经理是无关紧要的,因为它是从用户派生的。另一方面,如果一个用户可能有多个经理,那么您将从该表中提取经理 ID 并创建一个经理销售代表表以保持这种关系。无论哪种方式,确实不需要经理来使销售代表 - 客户关系独一无二。

第二个示例更令人困惑,因为它取决于对(不是很好)问题描述的解释。如果每天只有一个人可以检查房屋,那么可以不需要人员作为主键的一部分。但是,由于问题是可能有不止一个人共享汽车,因此可能有可能两个人可以在一天内一起检查房屋。这意味着在这种情况下,工作人员应该是关键的一部分。

最后,就像软件开发中的一切一样,这一切都取决于你试图用你的应用程序完成什么。

于 2019-04-29T04:34:59.777 回答