是否可以基于entity attribute value数据库创建数据仓库?如何基于实体属性值数据库构建数据仓库?
如果是这样,怎么样?
基本上我有以下格式的数据:
id name value
----------------
1 name1 10
1 name2 20
1 name3 30
2 name1 40
2 name2 50
2 name3 60
...
,而不是执行以下操作:
id name1 name2 name3
--------------------
1 10 20 30
2 40 50 60
我的问题是,有没有名字/措施,我可以把特定的一组在事实表中。
name1
,name2
和name3
是提前不知道(甚至没有多少人会存在)。
关于如何解决这个问题的任何想法?我在互联网上搜索,但无法找到任何相关信息。任何帮助非常感谢...
注意:我没有任何建立数据仓库的经验。我目前正在读: 数据仓库ETL工具包:实用技术提取,清理,整合和传递数据(由拉尔夫·金博尔)
所以回答Ben (from comments):“你的表实际上是标准化的。 ..为什么要取消它正常化“
龙回答:
我们的客户使用一个工具,允许他将它从OLAP多维数据集落尺寸&措施,在工作区,然后表演他选择的数据。
如果我使用the model Paul Grimshaw suggested,客户需要在工作区中拖动名称,然后为名称添加过滤器,例如与name1
(如果他愿意的话)相同。
另一方面,如果客户有一个他可以在工作区中拖动的名称列表,他只需要一个动作(易用性)来访问与name1
(仅举例)相关的数据。还有一个原因:可发现性。客户可以查看可用名称列表,只需从中选择名称,而不是为名称添加过滤器(并且他需要知道确切的名称)。
简短回答:易于使用的客户(其中包括名称的可发现性)。
我忘了提及名称1,名称2和名称3是事先不知道的(甚至没有多少可能存在)。 –
@Ben将元数据放入列不是规范化。这只是[糟糕的设计](http://tkyte.blogspot.com/2009/01/this-should-be-fun-to-watch.html)。 –
@IgorPopov每个不同的“名称”有不同的,不同的商业含义吗?因此,对于产品ID 1,其具有称为“重量”的“名称”,其具有度量50,并且具有称为“长度”的“名称”,具有度量25? –