如果没有候选键,如何设计表?

时间:2014-11-02 03:12:53

标签: database relational-database normalization database-normalization

目前在我的数据库类中,我们正在讨论关系模型和规范化等。我已经轻松地回答了我的作业中的每一个问题,但是这个问题让我感到厌恶:

  
      
  • 如果表没有候选键,那么设计表的一般做法是什么?
  •   

这里没有没有候选键的表的例子。上面的问题就是我所拥有的,而且我觉得这样做太模糊了。

我的第一个想法是找到任何决定因素(即使它们不是候选键)并创建一个包含这些功能依赖关系的新表,但我甚至不知道表中存在任何功能依赖性。第一名。这有可能的答案吗?

3 个答案:

答案 0 :(得分:3)

一个表,如果它是关系型的,总是至少有一个候选键(所有属性组合在一起)。允许重复行的表不是关系的。因此,如果您正在谈论 relational ,那么情景就不会发生。总有候选人密钥。

答案 1 :(得分:1)

例如,您可以创建一个保证唯一的自动增量列(自动增量整数)。

答案 2 :(得分:1)

关系表是行的,因此不能重复行,并且始终具有一个或多个CK。具有含义“客户C在D上购买物品I”的表具有所有列作为CK。 C-I-D三倍于表格中的真实陈述。但是“客户C在第N次购买D项目I”或“购买P是客户C购买项目I在D”给其他表。

您的引用是关于另一种表格 另一种含义。找出它们是什么!而不是“这个表(是关系所以它)是将(下面的)一行排成一个真正的语句:...”你会被告知类似“这个表是一个购买描述列表... ”。 Nb如何使用相关的东西或概念。然后选择一个参考或使用它们的关系意义/表。

PS CK是关系。非关系表不能 CK。它们可以在行列表上具有最小的唯一列集,但这不是CK。