缓慢变化维的几种常见解决方法:
第一种方法,直接在原来维度的基础上进行更新,不会产生新的记录:
1) 更新前:
??? emp_rid(代理键)? emp_id(自然键)?? emp_name? position
??? 101212?????????????????? 12345???????????? Jack???????? Developer
??? 更新后:
??? emp_rid(代理键)? emp_id(自然键)?? emp_name? position
??? 101212?????????????????? 12345???????????? Jack????????? Manager
?
第二种方法,不修改原有的数据,重新产生一条新的记录,这样就可以追溯所有的历史记录:
1) 更新前:
??? emp_rid(代理键)? emp_id(自然键)?? emp_name? position?? start_date?? end_date
??? 101212???????????????? 12345???????????? Jack??????????? Developer? 2010-2-5??? 2012-6-12
??? 更新后:
??? emp_rid(代理键)? emp_id(自然键)?? emp_name? position?? start_date?? end_date
??? 201245???????????????? 12345???????????? Jack??????????? Manager???? 2012-6-12
?
第三种方法,直接在原来维度的基础上进行更新,不会产生新的记录但是只会记录上一次的历史记录:
1) 更新前:
??? emp_rid(代理键)? emp_id(自然键)?? emp_name? position?? old_position??
??? 101212???????????????? 12345???????????? Jack?????????????? Developer? null
??? 更新后:
??? emp_rid(代理键)? emp_id(自然键)?? emp_name? position?? old_position
??? 101212???????????????? 12345???????????? Jack?????????????? Manager???? Developer