【问题标题】:Do we need to explicitly mention which column is foreign key column?我们是否需要明确提及哪一列是外键列?
【发布时间】:2015-03-27 08:13:33
【问题描述】:

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

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

只要你会写查询,你就可以检索数据。

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

还有其他原因吗?

【问题讨论】:

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


    【解决方案1】:

    重点是Referential integrity。如果您不执行它,迟早会发生代码中的错误或其他一些事故,并且您的数据库会处于不一致的状态。这些不一致在之后很难或不可能修复。

    【讨论】:

      【解决方案2】:

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

      不正确。您不需要需要创建外键(尽管这是个好主意),而且它们不代表关系。他们加强关系的完整性。外键确保一列中的值存在于另一列中。

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

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

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

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

      【讨论】:

      • foreign keys do not need to be between two tables, a table can have a foreign key to itself.你能举个例子吗?
      • @mankadanka create table employees (id int 主键,名称文本,supervisor_id int 引用employees.id);
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-11
      • 1970-01-01
      • 1970-01-01
      • 2011-03-04
      • 1970-01-01
      • 2014-06-01
      相关资源
      最近更新 更多