我们是否需要明确提到哪个列是外键列?

时间:2015-03-15 20:18:42

标签: database database-design foreign-keys foreign-key-relationship

当我们创建关系数据库表时,我们必须使用外键列。很明显,否则我们就无法建立关系。

但是,我注意到有一个外键列就足够了,你不需要说表A中有一个表B的外键关系。

只要您可以编写查询,就可以检索数据。

我们是否使用这个概念让事情变得简单?我知道,当我查看标记了哪些列是外键列的数据库表模式时,它很容易理解并开始使用它。

还有其他原因吗?

2 个答案:

答案 0 :(得分:2)

重点是Referential integrity。如果您不强制执行,迟早会发生代码中的错误或其他一些意外事件,并且您的数据库会处于不一致状态。这些不一致之后很难或无法修复。

答案 1 :(得分:1)

  

当我们创建关系数据库表时,我们必须使用外键   列。很明显,否则我们就无法建立关系。

不正确的。你不需要来创建外键(尽管它是一个好主意),并且它们不代表关系。他们强制执行关系的完整性。外键确保另一列中存在一列中的值。

  

但是,我注意到你拥有一个外键列就足够了   不需要说表A中存在外键关系   使用表B.只要您可以编写查询,就可以检索数据。

是的,这种关系基于数据本身,而不是包含外键。此外,外键不需要在两个表之间,表可以有自己的外键。

  

我们是否使用这个概念让事情变得简单?

不,我们使用外键来强制执行完整性。他们碰巧使ERD图更易于理解,这只是一个奖励。