可以在3NF / BCNF数据库中有可选字段吗?

时间:2017-01-31 19:35:40

标签: relational-database database-normalization third-normal-form

我有一个我想要设置的数据库,我希望它至少在3NF。但是,某些领域在所有情况下都不是必需的,而且这个领域的必要性,而不是价值本身,取决于另一个领域。

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

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

我有其他员工列表和存储位置表。现在我的问题是如果作业位于存储位置“LAB”,那么它将具有我想要跟踪的关联实验室票号。我将有另一张实验室门票表,其中包含状态,ECD等。如果存储位置为“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”中的所有项目,显示实验室编号状态。

0 个答案:

没有答案