Нарушаю ли я какое-либо правило NF для моей базы данных?


8

Я новичок в создании базы данных ... Мне нужно создать ее для моего веб-приложения по подбору персонала.

Моему заявлению необходимо запланировать просмотры, экзамены и собеседования соискателей и сохранить результат в базе данных.

Моя схема базы данных выглядит следующим образом:

введите описание изображения здесь

Моя проблема в том, что я включил applicant_idдругие таблицы ... например, экзамен, интервью, тип экзамена.

Я нарушаю какое-либо правило нормализации? Если я это сделаю, что вы посоветуете улучшить мой дизайн?


1
Я не думаю, что кто-либо, не обладающий особыми знаниями в области бизнеса / предприятия, может просто взглянуть на вашу модель данных и дать вам реальный совет о ключах, ограничениях, типах данных и т. Д. Однако я могу вам сказать, что любые столбцы, допускающие обнуление, будут нарушать строгое толкование 1НФ.
onedaywhen

Ответы:


10

Есть несколько вещей, которые следует учитывать, кроме нормализации. Например, у вас есть столбец для AGE. Собираетесь ли вы обновлять это каждый год? Как вы узнаете, когда это сделать? То же самое касается многолетнего опыта.

Есть несколько столбцов, которые, вероятно, будут иметь несколько значений для каждого кандидата: школа, курс и т. Д.

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

Это помогает, если вы зачитываете отношения после того, как создаете их.


1
Есть несколько вещей, которые следует учитывать, кроме таблиц и столбцов :) В моей стране есть законы о защите данных (ограничение времени хранения данных, право на доступ к своим данным и т. Д.) И законы о дискриминации по возрасту, которые заставляют работодателей хотя бы дважды подумать до записи чьего-либо возраста на этапе собеседования.
onedaywhen

5

Я предполагаю, что на самом деле вам нужны отношения «многие ко многим» между вашей таблицей «Кандидат» и другими основными таблицами (в основном «Скрининг» и «Экзамен») Это если у вас есть скрининг, содержащий более одного кандидата (и аналогичная ситуация для других таблиц).

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

Смотрите здесь об отношениях «многие ко многим».

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.