免责声明:我以前从未创建过数据仓库。我读过Kimball的数据仓库工具包的几章。
背景:工厂(工厂)管理团队需要能够以各种方式对生产信息进行切片和裁剪,我们希望在我们部门的制造工厂之间建立一致的报告格式。通过业务分析,我们得出的结论是,事实上,粮食是一排每一个过程完成。一个完整的过程可以是“机器”,也可以是“组装”。我称之为“生产事实”。
企业需要回答的问题如下:
我的架构包括以下一级维度。我没有任何维度超过第一级,但有一些交叉关系的工厂尺寸与零件类型,移位,和工艺尺寸。
无量纲的事实是:
问题
我的问题是,当时可能有一个以上的员工在处理这个过程。所以,我想知道我是否需要改变我的模型,以及如何在模型中最好地代表员工。我们并不是要存放员工信息,而是他们的公司员工ID。我考虑了以下几种选择:
我的问题
我认为选项3是最可行的选择,但我有一些保留。有潜在的监视吗?还有其他的选择我应该考虑吗?把那些在这个过程中工作过的员工从事实表中拿出来可以吗?
谢谢你的建议。
发布于 2014-05-19 14:38:31
我有时间考虑我的选择,在我最初的帖子中列出的4种选择都是不正确的。讨论的问题似乎是一个典型的“覆盖”问题;业务需要知道哪些员工在某个特定时间处理哪个过程。如果我们掌握了这方面的信息,我们就会知道在某一特定过程完成时,谁在从事某一特定部分的工作。最好将其表示为员工维度和生产过程维度之间的无事实事实表。
这种方法还帮助我节省空间和提高查询能力,因为单个员工的“覆盖率”事实将跨越多个流程生产事实。
发布于 2014-05-17 04:06:56
有一个概念叫做“缓慢变化的维度”。这些被认为是维度;基本上在这里,我将称之为PartEmployee的表;
这个表的结构将是
PartId - PK
EmployeeId - PK
EmployeeStartDate - PK
EmployeeEndDate如果员工仍在该部件上工作,则结束日期为空。当新员工开始对该部件工作时,将关闭该部件的上一次员工记录,并为该部件与新员工一起创建一个新记录。
在PartFact表中添加一个雇员;
EmployeeId本专栏将保存当前员工;此事实记录将在每一位新员工开始对该部分工作时更新。
这将为您提供员工在该部分工作的历史视角,以及在该部分上工作的员工的信息。
希望这能帮上忙。
https://stackoverflow.com/questions/23688811
复制相似问题