我应该规范化包含许多重复项的日期字段吗?

时间:2012-02-28 00:58:12

标签: database-design

在我的日程安排数据库中,我有一个“赋值”表,其中包含以下字段:

| assignment_date | start_time | end_time | task_ID | staff_ID |

每位工作人员每天将分配六到七个单独的任务,这意味着对于任何个人日期,当前的工作人员编号将有大约250个单独的条目。

我想知道是否有任何情况需要将日期字段提取到一个单独的表中(即将assignment_date更改为assignment_date_ID)。

这是否正常化了一步?我可以想象它会使查询变得更复杂,但是你能想到这个结构有什么好处可以抵消额外的复杂性吗?

1 个答案:

答案 0 :(得分:6)

用ID号替换日期(或文本或其他任何内容)与标准化完全无关。追捕那些教你这个想法的人,然后用尖锐的棍子戳他们的眼睛。

如果要限制可接受日期的范围,可以使用外键来表示可接受日期。这是添加表格的一个很好的理由;它也与标准化完全无关(它与数据完整性有关);并且你不应该在那个表中输入一个id号。