1

我有一个我正在尝试建立的数据库,我希望它至少在 3NF 中。但是,有些字段并非在所有情况下都是必需的,并且该字段的必要性,而不是值本身,取决于另一个。

从本质上讲,我想跟踪由于某种原因而暂停的工作。我现在的主表包括以下字段:

Job No (primary Key) | Short Text | Storage Location | Coordinator

我还有其他用于员工列表和存储位置的表格。现在我的问题是,如果作业在存储位置“LAB”中,那么它将有一个我想要跟踪的关联 Lab Ticket 编号。我将有另一个包含状态、ECD 等的 Lab Tickets 表。如果存储位置是“MR”,那么作业应该有一个通知编号,并且一个单独的表将包含有关通知的信息。

尽管作业在任何给定时间只能有 1 个存储位置,但它可以移动。例如,如果一个作业进入“LAB”并未能通过测试,它将被移动到“MR”并创建一个通知。

让我的 tblJobs 具有以下字段是否违反了 3NF 或其他形式的错误:

Job No (primary Key) | Short Text | Storage Location | Coordinator | Lab Ticket | Notification | ...

即使不是所有字段都填充或用于每项工作?顺便说一句,我正在使用 MS Access,尽管我认为这并不重要。

编辑:我看到有关 Null 值的相关帖子,但我的问题不是关于编程(我可以轻松地在不适用的字段中输入非空值 [例如“N/A”]),以及更多关于抽象数据库设计级别:简而言之,拥有可能不适用于大多数记录的字段是一种糟糕的形式吗?我通常讨厌在任何表中看到一堆 N/A 字段,但我开始认为一些经过深思熟虑的查询将允许我仅查看特定子集的相关信息。前任。对于“LAB”中的所有项目,显示实验室编号状态。

4

0 回答 0