来自2个表的外键在第3个中产生PK

时间:2016-08-02 14:15:21

标签: mysql foreign-key-relationship

enter image description here

嗨,账户表可以从SA& CA表中SA和CA是Accounts表中的FK约束吗?

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

谢谢。

1 个答案:

答案 0 :(得分:1)

您建议没有继承 supertable 的概念。它不是OOP。因此,使用外键约束创建表并手动插入数据。

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

您可能希望没有Accounts表。除了复制信息之外,它的目的甚至是什么。当然,它可以处理更多粒度,但不要用不必要的表过度填充您的设计。

如果您坚持使用单独的Savings和Checking表以及Accounts表,那么使用FK提取Accounts表的唯一方法是使用NULLS。并且,如上所述,不建议这样做。之所以?就像说它必须是其中一个 ......除非我不在乎。我们应该关心我们的数据。

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