Можно ли иметь дополнительные поля в базе данных 3NF / BCNF?
У меня есть база данных, которую я пытаюсь настроить, и я хотел бы, чтобы она была как минимум в 3NF. Однако некоторые поля не обязательны во всех ситуациях, и необходимость этого поля, а не само значение, зависит от другого.
По сути, я хочу отслеживать работы, которые по той или иной причине приостановлены. Моя главная таблица прямо сейчас включает эти поля:
Job No (primary Key) | Short Text | Storage Location | Coordinator
У меня есть другие таблицы для списка сотрудников и мест хранения. Теперь моя проблема в том, что если задание находится в хранилище "LAB", то у него будет связанный номер лабораторного билета, который я хочу отслеживать. У меня будет еще одна таблица лабораторных билетов, которая содержит данные о состоянии, ECD и т. Д. Если местом хранения является "MR", то задание должно иметь номер уведомления, а отдельная таблица будет содержать информацию об уведомлениях.
Хотя задание может иметь только 1 хранилище в любой момент времени, оно может перемещаться. Например, если задание переходит в "LAB" и не проходит тест, оно перемещается в "MR" и создается уведомление.
Это нарушение 3NF или просто плохая форма, когда мои tblJobs имеют поля:
Job No (primary Key) | Short Text | Storage Location | Coordinator | Lab Ticket | Notification | ...
даже если не все поля заполнены или используются для каждой работы? Кстати, я использую MS Access, хотя я не думаю, что это имеет значение.
Изменить: я вижу соответствующие сообщения о значениях Null, но мой вопрос не столько о программировании (я могу легко ввести ненулевое значение [например, "N/A"] в неприменимых полях), и больше о абстрактный уровень разработки базы данных: короче говоря, плохо ли иметь поля, которые могут не относиться к большинству записей? Обычно я не люблю видеть кучу полей N / A в любой таблице, но начинаю думать, что некоторые хорошо продуманные запросы позволят мне видеть только релевантную информацию для определенного подмножества. Ex. для всех предметов в "LAB" покажите статус номера лаборатории.