Я новичок в создании базы данных ... Мне нужно создать ее для моего веб-приложения по подбору персонала.
Моему заявлению необходимо запланировать просмотры, экзамены и собеседования соискателей и сохранить результат в базе данных.
Моя схема базы данных выглядит следующим образом:
Моя проблема в том, что я включил applicant_id
другие таблицы ... например, экзамен, интервью, тип экзамена.
Я нарушаю какое-либо правило нормализации? Если я это сделаю, что вы посоветуете улучшить мой дизайн?
normalization
database-design
новичок
источник
источник
Ответы:
Есть несколько вещей, которые следует учитывать, кроме нормализации. Например, у вас есть столбец для AGE. Собираетесь ли вы обновлять это каждый год? Как вы узнаете, когда это сделать? То же самое касается многолетнего опыта.
Есть несколько столбцов, которые, вероятно, будут иметь несколько значений для каждого кандидата: школа, курс и т. Д.
Вы также можете проверить свои возможности в этих отношениях. Прямо сейчас кандидат должен сдать соответствующий экзамен, но экзамен не обязательно должен быть связан с ним. Я предполагаю, что это обратное отношение к тому, как все работает в реальной жизни. У вас есть похожие проблемы со всеми другими отношениями.
Это помогает, если вы зачитываете отношения после того, как создаете их.
источник
Я предполагаю, что на самом деле вам нужны отношения «многие ко многим» между вашей таблицей «Кандидат» и другими основными таблицами (в основном «Скрининг» и «Экзамен») Это если у вас есть скрининг, содержащий более одного кандидата (и аналогичная ситуация для других таблиц).
Я бы увидел интервью с одним кандидатом, но экзамен или сеанс скрининга с более чем одним кандидатом. В этом случае вам понадобится таблица отношений, которая свяжет проверку с кандидатом.
Смотрите здесь об отношениях «многие ко многим».
источник