代理键和OLTP系统

大凡代理键都是为了处理数据仓库系统的缓慢变化维而设计的,那OLTP系统有无必要使用代理键呢?
1:首先我们搞清楚什么是代理键
通常数据库设计时会选择一个候选键作为主键,而主键通常是人可识别并且带一定商业含义的域,我们称之为自然键;
代理键就是代替那个自然键作为主键,而代理键通常是没有含义的流水号。
2:使用自然键可能存在的问题
1)必须首先确定自然键,才能输入数据。比如,某个业务系统需要给A客户分配一个代码,当A客户提交资料后,首先要给定一个客户代码,然后才能录入系统;
2)自然键的改变比较困难,比如像深交所的股票代码,从四位升级到六位,改变相关资料是非常大的工作量;
3:使用代理键的好处和坏处
1)更改变得非常容易,比如客户表,因为客户代码不再是主键,所以很容易更改,不需要更改引用它的表;
2)新增数据时可以后确定客户代码,因为代理键作为主键了。比如我们还是考虑2:中的业务场景,某个业务系统需要给A客户建立资料,分配客户代码,我们可以先将该客户录入

系统,目前客户代码是空的,然后我们提交相关的资料给相关部门,相关部门根据业务资料时候合适决定是否通过,如通过则手工或者自动分配一个客户代码,然后返回给提交人

员,否则驳回申请资料或者关闭申请。
3)和其他表的关联上没有那么直观。

个人意见,是否使用代理键见仁见智的事了!

posted on 2010-11-09 16:52  木人(我现在不是老大)  阅读(301)  评论(0)    收藏  举报

导航