我正在尝试建立一个在线航班预订网站的数据库结构。这只是我的一个计划。我在想我可以用外键作为我在桌子上的主键。
我的一张桌子是这样的:
表名:客户帐户
它有:帐户id(pk)、用户名和密码。
我的另一张桌子是:顾客信息
它有:帐户ID,名字,姓氏和其他个人信息。
我想的是,如果我在我的客户信息上使用(帐户id)可以吗?
表作为我的主键,因为它是引用客户帐户(帐户ID)的外键?
如果这是可能的,那么如果一直使用外键作为我的主键,而我真的需要这个表的id,这可以吗?

最佳答案

您的问题解决了称为“共享主键”的技术,因此我将该标记添加到您的问题中。
简而言之,答案是肯定的。如果要在两个表之间强制执行一对一关系,可以将外键作为主键。在is-a关系中经常出现这种情况,这是典型的类子类(类型子类型)情况。
通常情况下,可以通过将两个表合并为一个表来获得相同的结果。但是在某些情况下,子类数据非常不同,因此拥有两个或多个表更令人满意。有关这种情况的讨论,请参见“类表继承”。

关于mysql - 我可以在大多数表中使用外键作为主键吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38802933/

10-16 16:15