·???????? 每个维表必须有而且只有一个最明细层作为该维表的颗粒度。
·???????? 任何一个维表若被多个事实表使用,该维表应作为公共维表来设计。
·???????? 除非出于性能考虑,否则每一个非键属性应只出现在一张维表里。
·???????? 需要记录属性变化的维的主键应该是使用代理键,并使用具有业务含义,业务用户可识别的代码作为自然键。业务系统自带的代理键不能做为维表的主键。
·???????? 维表应尽量保存业务使用的代码和ID,以及描述信息。
·???????? 维表的主键(代理键)应做为事实表的外键包含在事实表内。
·???????? 每个维表中要有相应的行记录来处理特殊的情形来避免在事实表中置空值。如记录不存在,以及迟到的维记录。
通常情况下,一个维度模型不应该有超过10到15个以上的维度,否则需要将维度合并以提升查询性能。