Используйте или нет ключ как FK и PK - PullRequest
0 голосов
/ 03 мая 2018

В базе данных у меня есть следующее:

USERS
Id (PK)
Name

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

Все врачи. Я также являюсь Пользователем приложения, но у меня есть дополнительные столбцы, и я отображаю всех врачей на странице.

Имеет ли смысл иметь Id и UserId в таблице DOCTORS?

Или я должен сделать UserId как PK, так и FK таблицы ДОКТОРЫ:

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

По вашему мнению, когда я должен пойти на этот вариант?

Ответы [ 2 ]

0 голосов
/ 04 мая 2018

Если вы не сделали это ПК, то у вас могут быть дубликаты, что, вероятно, не то, что вы хотите.

0 голосов
/ 03 мая 2018

Да, вы можете сделать UserId (как вы его определили) как первичным ключом, так и внешним ключом. Первичный ключ указывает, что он уникален в таблице. Внешний ключ сопоставляет его с таблицей Users.

Это пример отношения поднабора.

Я бы назвал столбцы Users.UserId и Doctors.DoctorId. Я думаю, что это менее запутанная номенклатура, которая охватывает наиболее важный аспект двух столбцов. Тем не менее, реальные имена не важны для вашего вопроса (и ваши разумные).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...