如果我使用自然连接而不是使用主键和外键?
答案 0 :(得分:4)
主键和外键是数据库约束的类型:它们的目的是确保数据的完整性,而不是为了方便连接。
主键:主键列的值不得超过一行。
外键:每行的外键列中的每个值必须对应于引用/父表中行的主键(或唯一键)。
答案 1 :(得分:1)
不确定你在问什么。联盟做了与PKs / FKs不同的事情 - 他们显然不能互相替代。 PK和FK实施约束以确保数据的正确性。联接是一种查询操作。
答案 2 :(得分:1)
天然连接通常是一个坏主意。您可能会意外加入错误的字段,然后您的结果都是错误的,但可能看起来是正确的。即使它们最初工作,稍后对数据库的更改也可能会大大改变您的查询结果并且难以弄清楚。在任何情况下我都不会使用自然联接。
PK和Fks用于强制数据完整性,无论您是否使用自然连接,删除它们都是一个非常糟糕的主意。没有适当的PKS和FK的数据库几乎总是包含不良数据。