首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > 数据库开发 >

小弟最近在做BI项目,有些有关问题想向各位指教,并一起成长

2012-02-17 
小弟最近在做BI项目,有些问题想向各位指教,并一起成长想问一个关于维度设计方面的问题,1、现有一个维度为病

小弟最近在做BI项目,有些问题想向各位指教,并一起成长
想问一个关于维度设计方面的问题,
1、现有一个维度为病人维度,现在存放了有病人基本表中的信息(单病人并不是一个病人一条数据),里面有个职业代码,并向通过职业角度去观察就诊人次,我想问的是这个职业维度是单独放出来作为一个维度还是就放在病人维度表中,还有原先的职业代码是关联到一个数据字典的,病人信息中的职业就用那张关联表的ID,那么我在维度设计的时候这个职业代码如何存放,是存放职业名称还是ID。
2、做门诊就诊人次分析的时候,我事实表中的是挂号账单中的数据,我要做的是人次的分析那事实表中的度量值是什么,是加一个字段然后都是取值为1吗?因为我账单试试表中一条数据就代表一个人次。
3、在分析中我们还采用了病种分析,但是很多病人在就诊的时候有两个不同的病种,比如病人A就诊一次又两个病种高血压、糖尿病,那么我在做人次分析的时候怎么保证根据病种分析出来的人次,因为按照病种的话高血压和糖尿病是两个数据、但是他是同一个人。
4、年龄维度是用病人维度的生日还是自己再创建一个年龄维度表。对于维度表是一张表还是两张表本人拿捏不定。

谢谢各位有经验人士 指教小弟

[解决办法]
1. 职业维度和病人维度到底是怎么样一个关系,从以上描述中,没有得到确定的答案。那么,无论分开还是不分开,都是可行的。 如何分开,维度设计,一般就2个字段,ID、NAME,关联时用ID,显示时,可以用NAME。

2. 度量值再从事实表中计算的意思吗? 直接 count 总数就行了

3. 从业务上理解,两个层次的人次并不一致
医院 整体 : 100 人次
高血压 : 50 人次
糖尿病 : 51 人次

用户要的是这样的结果吗? 如果是这样的话,底层维度(病种)和上层维度(医院)要分开计算,设计时,可以考虑在 底层维度(病种)之外,再加一个汇总层(如 -8),表示医院总体情况。

4. 年龄维度 ,如果可以,尽可能分离出来吧。 不过,还是要先了解一下用户的需求,如果变动不大,就固定成一个维表,10 - 20 、 21 - 30 、31 - 50 ...
[解决办法]
我也在做BI呢
[解决办法]
1、通常从病人基本表的分析会多些,我建议在病人基本表中保留职业代码。否则还要建立病人和职业的关系表,多表管理对于大数据量统计来说,不高效;
2、如果不是每个病人都有档案的话,估计一单一人,直接count挂号单即可
3、没太看懂你的需求,两个病种,看病不在一个科室,挂号是分别挂吧?
4、在病人基本表中存储出生日期即可,年龄是逐年变化的,单独建表意义不大。
[解决办法]
1。我比较倾向于职业和病人分开。现在职业应该算是个快变项,今天我可以编程,明天我也许就去买东西。看你的系统怎么要求,如果这种改变需要被记录的话,你把它放在病人维度中,需要有相应的操作。分开的话,病人维度不含职业信息,就不会因职业变化发生任何操作。事实表中每条记录记载病人当前的职业id,直接跟职业维度关联。

4。年龄,一样也是快变项。我都计算出来放在事实表中,再单独做个年龄维,用实际年龄当key跟事实表关联。
[解决办法]
1、通常从病人基本表的分析会多些,我建议在病人基本表中保留职业代码。否则还要建立病人和职业的关系表,多表管理对于大数据量统计来说,不高效;
2、如果不是每个病人都有档案的话,估计一单一人,直接count挂号单即可
3、没太看懂你的需求,两个病种,看病不在一个科室,挂号是分别挂吧?
4、在病人基本表中存储出生日期即可,年龄是逐年变化的,单独建表意义不大。
[解决办法]
1.个人觉得职业的维度值如果比较多,而且要常做分析,还是分出来效率高些,相反可以作为病人属性。
单号如果是相同的,那就不用担心,直接把单号去重复count 就OK。
2.代码和名称是唯一匹配的话还是放在一起,将代码关联
3.少量的空置不会对整体分析造成影响,不过数据最好保存。

热点排行