应该拆分多少数据?

时间:2019-05-02 06:22:11

标签: database ms-access

我目前正在使用Microsoft访问权限来建立数据库。 主要目标是以结构良好的方式重新设置大量库存。 当前的清单中充满了重复和冗余,我正尝试通过访问来减少冗余和冗余。我现在的问题是,应将多少数据分成最小的逻辑部分。

列表中包含许多不同的数据,我已经将其细分了很多,让我给您一个概述:

E/R-Diagram

对我来说,我似乎可以将房间的不同属性拆分为单独的表,因为每个键都显示多次。例如,每个房间都有一个类别(例如:局)和一个定义(例如:会议室),当然,有多个房间具有相同的类别/定义。

问题是,将其拆分为孤立的表是否有意义?感觉就像我将这种方式拆分得太多了。

2 个答案:

答案 0 :(得分:1)

您的基本数据表是: 员工,团队,部门,楼层,房间,工作站,设备。

然后,您需要使用查找表来处理以下内容:Employee_Gender或Room_Size(必须从一组固定值中进行选择的任何内容)。

根据事物的工作方式,通过直接将团队分配给房间而不是楼层,也可以将楼层更好地用作查找表。

也不要直接链接房间和设备。除非您将设备分配给不属于任何工作站的房间,否则通过工作站的链接就足够了。即使那样,我也只会创建虚拟工作站条目,而不是让我的表链接循环。

如果有可能(永远)与来自不同部门的员工组成团队,则该部分也需要有所不同(直接分配给部门并且独立分配给团队的员工,而不是通过分配给团队来分配给部门的员工)。在这种情况下,团队也是查找表而不是主数据表。

答案 1 :(得分:0)

Size只是一个值,应该作为值存储在Room中,而不是作为外键。如果它们是标准化的,则可以为Sizes提供一个查找表,只是为了使数据输入更容易,但这对于建立关系没有用。

Room definition也是一个查找表。但是名称可以更改,因此我将在此处使用外键(来自Room)。但是如果您可以简化定义,也可以直接存储定义名称。

其余的很简单:

房间->地板
设备->房间

这里没有n:m关系需要连接器表。