Нормализация формы - PullRequest
       9

Нормализация формы

0 голосов
/ 14 октября 2010

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

Подробности следующие:

Client_Name, Client_phone (Normalized)

Дата, время, местоположение, Person_met, местоположение, key_notes, Staff (повторяющиеся группы)

В 1-ом NF я знаю, что Client_Name (учитывая ключ client_ID) будет внешним ключом в повторяющейся группе, но я не знаю, какой атрибут будет первичным ключом.

Будут ли дата и время определять встречу?Не уверены, что у вас может быть два первичных ключа?

Любая помощь будет принята с благодарностью.

Ответы [ 2 ]

1 голос
/ 14 октября 2010

Я думаю, что Дата, Время и Местоположение должны быть составными первичными ключами (вы, вероятно, можете иметь более одного собрания одновременно ...).
Я не уверен, что вы имеете в видухотя "повторяющимися группами".

0 голосов
/ 15 октября 2010

лично я не люблю составные ключи, если нет физической причины (например: она будет использоваться для перехода по иерархии).Я бы предложил суррогатный ключ.PK должны быть естественными, уникальными, обязательными и предпочтительно стабильными (т.е. не модифицированными).Поскольку это случается редко, обычно используется суррогатный ключ (добавляемый столбец, которому СУБД назначается увеличенный номер).

В вашем примере дата и время не должны быть PK какпредположительно могут быть две встречи с этой точной датой и временем (как бы маловероятно это ни было ...).Если вам необходимо иметь составной ключ, тогда потребуется дата, время и имя клиента, чтобы сделать его уникальным, поскольку один и тот же клиент не может участвовать в двух собраниях одновременно (верно?). Также я замечаюместо там дважды.Вероятно, должен быть идентификатор местоположения с местоположением в отдельной справочной таблице, для 3-й NF.

...