我有一个旧的数据库设计,我认为我可以简化并使其更规范化。我希望对此有所了解。这里是“规则”的数据库:数据库设计审查
该组织由三个层次:
一个。局 - 是最高级别
b。办公室 - 每个局可以有多个办公室
c。分部 - 每个办公室可以有多个部门我们有三个层级的所有员工。例如:
a。我们有局级职员。他们不属于办公室或部门。监督所有办公室,但不属于他们
b。我们拥有不属于特定部门的办公室级员工,但监督所有部门
c。属于分部的部门级人员我们也有项目。一个项目可以在不同级别:
a。 b。全局项目
b。跨越多个办事处的项目
c。仅在一个部门的项目每个项目都需要由至少一名员工管理,具有特定角色(项目经理)员工表将由具有其他角色的个人组成,甚至是多个角色。
目前,我有以下模式(它删节为了简洁):
有了这个模式,我发现了以下问题:
所有项目与这个模型中的一个部门联系在一起。但事实上,并非所有项目都直接归属于一个部门。有些可能在办公室或局级。其他人可能跨越多个办公室或局(但不跨越多个局和办公室)。所以,我通过在每个组织层级中有额外的选项来解决这个问题。例如。在分区表中,我可以选择全局或全局。或者我可能有Office One/Office Two等选项。
我看到的另一个问题:每个角色表都有许多重复的值。例如,如果我们看分割角色表。几乎所有的部门都有相同的作用。所以,我有DivisionManager,divisonPM,divisionLead多次列出(每个分区一次)。有时候,一个部门可能有独特的地位,但这种情况很少见。这是真实的BureauRole和OfficeRole表
所以,我正在寻找建议如何更好地规范化这个数据库,并解决上述情况。任何人都有建议?
'它删节的brevity' ...有多大实际模式呢? –
约25桌。大多数表格都是关于ProjectsTable的一对多表格。例如,有一个名为ProjectType的表格。每个项目都可以是特定的类型。 – jason