无法规范化此数据库

时间:2014-12-07 02:37:06

标签: mysql ms-access

目前,我有48个字段。 enter image description here

我完全是新手。这就是我决定将所有东西连接在一起的方式。

enter image description here

它似乎不是很有效。有人可以帮我理解如何规范化这个数据库吗?

我是否应该尝试将员工信息放在一个表中,将工作信息放在另一个表中,然后设置一个设备查找表?

2 个答案:

答案 0 :(得分:0)

当前作业,上一个作业和上一个作业都可以是所有SAME表。如果您按降序作业开始日期对此表进行排序,那么您将拥有当前,最后和上一个。因此,您不需要也不需要为这些实际上相当于“工作”概念的单独表格。如果按日期排序是不够的,那么您可以添加一个名为“作业类型”的列(当前,上一个等)。同样,我们仍然只使用一个表。

设备也是如此。你真的不在乎限制是最后3个,还是最后300个。通过构建一个规范化的表,然后ONE表单可以编辑所有类型,您可以节省大量的编码和构建表,用户界面软件,以及构建要检索的quires +显示表单中的最后3个作业。

您的设计开发成本低于3或300的最后工作确实没有实际意义。更重要的是,如果一些经理出现并且现在希望您保存最后4个工作,那么您在这里没有进行大规模的重新设计。您可以随时添加新的工作类型。因此,取代当前,并说之前,您还可以拥有未完成或失败的工作。因此,添加新的业务规则意味着您不再添加新类型的作业表,而只是将“类型”添加到已用于将作业定义为当前或之前的一列。

答案 1 :(得分:0)

  1. 识别相似的对象并制作一个表来存储所有这些对象。在您的设计中,您有三个设备表,但每个设备项具有相同的字段;他们应该是一张桌子。同样,对于工作,每项工作都差不多;他们应该是一张桌子。部门也一样。
  2. 找出每个表中的一个或多个列,它们可以唯一地标识表中的行(也就是说,如果您知道那些列的值,则不可能,因为有两行与这些价值观)。这些是您表格的主键。
  3. 确定一个表中的项目需要"指向" (参考)另一个表中的项目。在这种情况下,请确保引用表具有一组与引用表匹配的列。
  4. 当您完成这项工作后,您将开始正确分析关系数据库设计。