一个产品维搭建的问题

chougoushi 2003-04-10 11:08:17
比如,现有一电路板,可用于产品101和102,数据库中记录为
编码 类型
10101 101


但现在换成
编码 类型
10101 102

类型以后还可能变成别的,想这种维度该如何搭建,事实表数据量很大,不可能每天重构,而且,历史数据要求保留,即 看过去的数应是在101下,看以后的应在102下,如果做成星行维,得每个类型下面都有此编码,不合适,高手指教
...全文
39 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
shiming927 2003-04-14
  • 打赏
  • 举报
回复
引用 -- "如果做成星行维,得每个类型下面都有此编码,不合适"
能否解释一下为何不合适吗?

如果不能以产品或电路板建维,是否考虑建2个维度?(当然仍是星型的)
chougoushi 2003-04-14
  • 打赏
  • 举报
回复
如果简单的做成星型维,理论上某个型号可以出现在每个类型下,客户在看到产品维时,会看到同一个型号在多个类型下,虽然他们是不同的时期。他们用惯了mis,要求就是“每个型号在一个类型下”,我就是不知道,该怎么搭这个维度
shiming927 2003-04-11
  • 打赏
  • 举报
回复
将类型定义为type 2 dimension, 增加date_from,date_to以标示有效时间段
可以将'9999-12-31' 作为当前字段的date_to.
表的结果应该这样:

代理主键 编码 类型 date_from date_to
1 10101 101 '1900-00-00' '2003-04-02'
2 10101 102 '2003-04-03' '9999-12-31'
...

原类型,现类型的解决方法只是OLTP中的折衷方法。

更多细节可参考"datawarehouse toolkit"一书 by R Kimball
煜知搬砖者 2003-04-11
  • 打赏
  • 举报
回复
编码,原类型,现类型
chougoushi 2003-04-11
  • 打赏
  • 举报
回复
这样的话,是不是就是


类型
标记字段
编码

的层次关系,而他要求的是
类型
编码

到底该怎么办啊
chougoushi 2003-04-11
  • 打赏
  • 举报
回复
我主要是想知道怎么建维度,我觉得星型的或是父子维都不行,如果加了date_from,date_to好像在维度中也没发体现阿
煜知搬砖者 2003-04-10
  • 打赏
  • 举报
回复
把产品作为一个维度,编码和类型最为它的层次
chougoushi 2003-04-10
  • 打赏
  • 举报
回复
忘了说,我用的事 SQL SERVER 2000
ocean_far 2003-04-10
  • 打赏
  • 举报
回复
不好意思说错了,是把“编码”作为第一层。
ocean_far 2003-04-10
  • 打赏
  • 举报
回复
增加一个“主键”和一个“当前标记字段”
主键 编码 类型 当前标记字段
1 10101 101 以往数据
2 10101 201 当前
再将“当前标记字段”作为维的第一层
如果维表发生了变化,且采用MOLAP的存储方式的话,必须处理OLAP数据库。

7,388

社区成员

发帖
与我相关
我的任务
社区描述
其他数据库开发 数据仓库
社区管理员
  • 数据仓库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧