дизайн базы данных - нормализация таблиц - PullRequest
0 голосов
/ 28 сентября 2010

Я хочу разрешить пользователям создавать свои резюме онлайн.Создание резюме будет иметь несколько шагов.После первого шага резюме будет сохранено.Он может ввести данные для других шагов позже или он может перейти к следующему шагу после первого шага.

Шаг 1 Личная информация: название, имя, адрес, телефон, электронная почта

шаг 2 История трудоустройства: цель карьеры Недавняя должность Предыдущая должность (он может ввести столько позиций, сколько сможет)

Шаг 3 Образование: (должность, год завершения и т. д.) (много)

Шаг 4 Навыки: Нетехнические навыки работы с компьютером (много)

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

Это элегантный подход в соответствии с базой данных?Или я должен составить отдельные таблицы для каждого шага, так как будет отдельная форма, и мне будет легко с ней справиться.

1 Ответ

1 голос
/ 28 сентября 2010

Нормализация - это не избыточная информация, другими словами: не может быть дубликатов записи.

Ваша схема может выглядеть следующим образом:

Person -> has 1 or many EmploymentHistory
       -> has 1 or many Education
       -> has 1 or many Skill

Вы можете сами решить, как вы хотите настроить это.Вы можете создать набор Объектов Образования и Навыков в разработанных таким образом таблицах или сделать это способом, описанным выше.Если вы создаете таблицы «Образование» и «Навыки», ваша схема может выглядеть следующим образом:

Person -> 1 or many -> LinkTable PersonToEducation -> 1 or many -> Education
       -> 1 or many -> LinkTable PersonToSkill     -> 1 or many -> Skill
...