【问题标题】:SQL - can a table column in a foreign key relation reference to two different tables?SQL - 外键关系中的表列可以引用两个不同的表吗?
【发布时间】:2018-04-11 16:17:42
【问题描述】:

目前情况:

我有一个表 A,其中有一列。此列应与 CD

具有外键关系

我如何用 SQL 定义语言来描述这个

为了更清楚:

C 和 D 是例如包含有关税收信息的表格。但这些税款不在一张表中。它们分布在这两个表中。

我现在想要的是表 A 中的 外键引用e 应该在同一列上同时具有外键引用,例如A->tax_rate_id 到表 C 或 D。

这是否可能以及如何为其编写 DDL 描述

【问题讨论】:

  • 嗨。这是一个常见问题解答。始终在谷歌上搜索您的问题/问题/目标的许多清晰、简洁和具体的版本/措辞,并阅读许多答案。将您发现的相关关键字添加到搜索中。如果您没有找到答案,请发布,使用一个变体搜索您的标题和关键字作为您的标签。例如谷歌您当前的标题。 PS Google 重新数据库/SQL 子类型化/多态性/层次结构,以了解如何避免这种反模式。

标签: mysql sql foreign-keys ddl


【解决方案1】:

外键不能同时引用 2 个表。你应该阅读外键的定义。

【讨论】:

  • 嗨,@amin 我试图更新问题的描述
  • 编辑了答案。
  • 是的,“FK”有一个定义,它意味着某件事,一个人有一个目标。但是“这在现实世界中甚至是不可能的”是什么意思?列集肯定可以被限制为在一个目标或(完全或包含)另一个目标中具有值。这不是 FK 约束。
  • 是的,你是对的。我们有,但我认为他们很少在两个表中都占据主要地位。无论如何,答案已编辑。
猜你喜欢
  • 1970-01-01
  • 2018-06-13
  • 1970-01-01
  • 2019-12-04
  • 2018-01-18
  • 1970-01-01
  • 1970-01-01
  • 2013-09-11
  • 1970-01-01
相关资源
最近更新 更多