Конвертировать таблицу в 2NF - странную таблицу для конвертации? - PullRequest
1 голос
/ 17 июня 2011

У меня есть следующая таблица ниже, и я должен преобразовать ее в 2NF.

Convert table to 2NF

У меня есть ответ на этот вопрос, куда я отправился:

НАВЫКИ: Сотрудник, Навык

РАСПОЛОЖЕНИЕ: Сотрудник, Текущее место работы

У меня такое ощущение, что я не прав с этим ^ выше ^ хотя.

Также кто-то может объяснить, в чем разница между 1NF, 2NF и 3NF.Я знаю, что 1 стоит на первом месте, и вам нужно разбить все это на меньшие таблицы, но хотелось бы, чтобы действительно хорошее описание помогло мне лучше понять.Спасибо

Ответы [ 2 ]

0 голосов
/ 08 февраля 2015

Я новичок в изучении 2NF, но я решил ответ следующим образом.Дайте мне знать, если это правильно, чтобы я мог понять свою ошибку и попрактиковаться.

enter image description here Только две таблицы.Спасибо

0 голосов
/ 17 июня 2011
Employee Table

EmployeeID  |   Name
1       |   Jones
2       |   Bravo
3       |   Ellis
4       |   Harrison


Skills Table

SkillId     |   Skill
1       |   Typing
2       |   Shorthand
3       |   Whittling
4       |   Light Cleaning
5       |   Alchemy
6       |   Juggling

Location Table

LocationId  |   Name
1       |   114 Main Street
2       |   73 Industrial Way

EmployeeSkill Table

EmployeeId  |   LocationId  |   SkillId |   SkillName
1       |   1       |   1   |   Typing
1       |   1       |   2   |   Shorthand
1       |   1       |   3   |   Whittling
2       |   2       |   4   |   Light Cleaning
3       |   2       |   5   |   Alchemy
3       |   2       |   6   |   Juggling
4       |   2       |   4   |   Light Cleaning

В таблице EmployeeSkill первичным ключом будет EmployeeId + LocationId, это дает вам навык, который они имеют в этом месте. Включение столбца SkillName нарушает 3NF в этом примере. Эта практика фактически используется иногда при проектировании базы данных (и называется «денормализация»), чтобы уменьшить количество соединений и повысить производительность чтения данных, которые обычно используются вместе.
Обычно это делается только в таблицах, используемых для отчетности.

...