来自 2 个表的外键在第 3 个表中构成 PK

Foreign keys from 2 tables make a PK in the 3rd

您好,账户 table 能否从 SA 和 CA table 中获取其值,SA 和 CA 字段是账户 table 中 FK 的约束?

逻辑要求我这样走,而不是反过来。即不要首先将帐户构建为 supertable,然后从那里创建另外两个。

谢谢。

没有你说的inheritancesupertable的概念。它不是 OOP。因此,创建带有外键约束的 table 并手动插入数据。

外键值可以为 NULL。虽然通常不是一个好主意。您可能希望使用 type 列将 table 从 3 缩减为 2 或 1。

您可能不想拥有帐户 table。除了复制信息之外,它的目的是什么。当然,它可以处理更多粒度,但不要用不必要的 table 过度填充您的设计。

如果您坚持拥有单独的储蓄和支票 table 以及账户 table,使用 FK 完成账户 table 的唯一方法是使用的空值。而且,如前所述,不建议这样做。之所以?这就像说 它必须是其中之一 ... 除了我不在乎的情况。我们应该关心我们的数据。

克制 FK 的冲动 NULL。实现这一目标的一种方法是拥有一个帐户 table,然后加入其他 table,知道只有一些人会成功。一个Conditional Join。通过 LEFT JOIN.

实现