是否使用Key作为FK和PK

时间:2018-05-03 20:28:09

标签: sql tsql

在数据库中,我有以下内容:

USERS
Id (PK)
Name

DOCTORS
Id (PK)
UserId (FK)
CurriculumVitae
Birthdate
...

所有医生我也是应用程序的用户,但有额外的列,我在页面上显示所有医生。

在DOCTORS表上有Id和UserId是否有意义?

或者我应该将UserId设为表DOCTORS的PK和FK:

DOCTORS
UserId (PK, FK)
CurriculumVitae
Birthdate
...

在您看来,我应该何时选择此选项?

2 个答案:

答案 0 :(得分:2)

是的,您可以使UserId(如您所定义的那样)主键和外键。主键指定它在表中是唯一的。外键将其映射回Users表。

这是一个子集化关系的例子。

我实际上会调用列Users.UserIdDoctors.DoctorId。我认为这不是一个令人困惑的术语,它捕获了两列最重要的方面。但是,实际名称对您的问题并不重要(而且您的问题是合理的)。

答案 1 :(得分:0)

如果你还没有成为PK,那么你可能会有重复,这可能不是你想要的。