表中的列既可以是主键,也可以是外键?

时间:2012-12-24 13:11:35

标签: php mysql

有人可以告诉我,是否可以将外键作为表中的主键?

示例是,我有一个PATIENT表,其中PATIENT_ID为主键,我还希望将PATIENT_ID作为外键,同时使用主键到ASSESSMENT表(包含患者的生命体征)。可以,还是会产生问题?

5 个答案:

答案 0 :(得分:4)

只要您可以保持1比1的关系,那就没问题。 数据库方面没有限制

答案 1 :(得分:1)

是的外键可以作为表中的主键。

答案 2 :(得分:1)

  

可以或者是否会产生问题?

我会说没关系。这产生的一个小问题可能是它让你需要提问。所以,如果你真的想要了解更多,你应该问问自己为什么不确定具体的事情,这样你才能真正学到一些东西。

答案 3 :(得分:1)

这称为一对一关系。

  

可以或者是否会产生问题?

只要您有充分的理由将数据保存在两个表中,就可以了。

答案 4 :(得分:0)

外键的先决条件是作为外键的列需要是两个表中的键。所以从这个角度来看,你是完全安全的。可能引发的唯一问题是应用程序的未来发展,当您可能需要在两个表之间存在一对多关系时,在这种情况下使用此方法非常糟糕。稍后在数据库级别上更改此行为并不是很困难,但在应用程序级别可能会非常棘手。

老实说,我非常怀疑你需要在两个表之间实际使用外键,因为id总是相同的,这种方法会破坏外键的用途。此外,大多数主键通常是自动递增的,而您的情况并非如此,这可能会导致未来发展中出现其他问题。