有人可以告诉我是否可以将外键用作表中的主键?
例如,我有一个作为主键的PATIENT
表,我还希望有一个外键作为表的主键(其中包含患者的生命体征)。没问题还是会产生问题?PATIENT_ID
PATIENT_ID
ASSESSMENT
只要你能保持一对一的关系就可以了。数据库端没有限制
是的,外键可以作为表中的主键。
没问题还是会产生问题?
我会说没关系。这产生的一个小问题可能是它让你需要问这个问题。因此,如果你真的想了解更多,你应该问问自己为什么不确定,这样你才能真正学到一些东西。
这称为一对一关系。
没问题还是会产生问题?
只要您有充分的理由将数据保存在两个表中,就可以了。
外键的先决条件是作为外键的列必须是两个表中的键。所以从这个角度来看,你是绝对安全的。唯一可能出现的问题是应用程序的未来发展,当您可能需要在 2 个表之间建立一对多关系时,在这种情况下使用这种方法非常糟糕。稍后在数据库级别更改此行为并不难,但在应用程序级别可能会非常棘手。
老实说,我非常怀疑您是否需要在两张表之间实际使用外键,因为 id 将始终相同,这违背了外键的目的。此外,大多数主键通常是自动递增的,这对您而言并非如此,这可能会导致未来开发中的其他问题。