Каков конкретный шаг для определения первичного ключа в первой нормальной форме - PullRequest
0 голосов
/ 28 апреля 2019

Я очень озадачен тем, как определить первичный ключ в первой нормальной форме

В первом примере: я могу понять причину, по которой SR_ID и Cus_No являются первичными ключами.Но почему Mngr_ID не является первичным ключом?Почему Mngr_ID зависит от SR_ID и Cus_No enter image description here

В другом примере: почему staff_No не является первичным ключом?Потому что в лекции первый шаг, который изучает мой профессор, - это начать с поиска ПК.Но я не уверен, как это сделать?В этом примере все остальные атрибуты могут зависеть от property_no и IDate, поэтому они являются pk.Но я не понимаю, почему staff_no зависит от property_no и IDate

enter image description here enter image description here

1 Ответ

0 голосов
/ 29 апреля 2019

Ну, первичный ключ - это столбец или комбинация столбцов, которые делают строку в таблице уникальной.В первом примере mgr Id не является частью ключа, потому что менеджер назначен непосредственно пользователю, таким образом, имея только одного менеджера на пользователя.Поэтому, если вы знаете пользователя, менеджер не имеет значения, поскольку он получен от пользователя.С другой стороны, если у пользователя может быть более одного менеджера, вы должны извлечь идентификатор менеджера из этой таблицы и создать таблицу торговых представителей менеджера, чтобы сохранить эти отношения.В любом случае, менеджер действительно не нужен, чтобы сделать торгового представителя уникальным.

Второй пример более запутанный, поскольку зависит от интерпретации (не очень хорошего) описания проблемы.Если только один человек может осматривать дом в день, то да, персонал не нужен как часть первичного ключа.Однако, поскольку проблема говорит о том, что в машине может быть больше одного человека, возможно, что два человека вместе могут осмотреть дом за один день.Это будет означать, что персонал должен быть частью ключа в этом случае.

В конце концов, как и все в разработке программного обеспечения, все зависит от того, чего вы пытаетесь достичь с помощью своего приложения.

...