上海太保P05项目——业务唯一号(UNIQUE_ID_IN_SOURCE_SYSTEM)与哈希号(HashCode)的作用

 
提示:锚表是没有HashCode的。
             UNIQUE_ID_IN_SOURCE_SYSTEM:业务唯一号,用以唯一标识一个业务的主键
       HashCode:哈希号,用以判断是否增量记录
 
UNIQUE_ID_IN_SOURCE_SYSTEM(业务唯一号)构键规则一般是:系统号_表名_表主键,用以标识唯一业务记录。HashCode号一般由非主键非常量字段组成(即用以表识非主键属性),用以表示同一业务内的变更情况,在数据抽取清洗过程中,给系统判断是否是增量记录用。
实例:业务系统RYX下的一家机构代理点表结构如下:
JIGOU(DLDDM,DLDMC,DLDDZ)
 --机构(代理点代码,代理点名称,代理点地址)
该机构在业务数据库中相应的表结构为:
YEWU(UNIQUE_ID_IN_SYSTEM,DLDDM,DLDMC,DLDDZ)
--业务(系统唯一标识,代理点代码,代理点名称,代理点地址)
业务唯一号UNIQUE_ID_IN_SYSTEM为RYX_JIGOU_DLDDM,任何机构下的记录都可以通过UNIQUE_ID_IN_SOURCE_SYSTEM来唯一标识。但是UNIQUE_ID_IN_SOURCE_SYSTEM只包含了机构的主键(DLDDM),它无法记录该代理点其它属性的变更。比如某一个代理点2006-12-31之后的代理点名称(DLDMD)更改了。按业务逻辑,DLDMC更改了并不影响主键(DLDDM),即DLDMC没有改变,仍然使用原来的代理点代码来标识该机构的业务,并且业务要求业务记录时需要把该机构的业务变更历史记录下来,而UNIQUE_ID_IN_SOURCE_SYSTEM就包含机构主键,并没有反映这种变更,所以就需要使用HashCode记录这种变化了。在此实例中,增加 HashCode字段,并且在此HashCode取值为DLDMC,则该机构代理点的表结构不变:
        JIGOU(DLDDM,DLDMC,DLDDZ)
        而该机构的数据库中相应的表结构改为:
        YEWU(UNIQUE_ID_IN_SOURCE_SYSTEM,DLDDM,DLDMC,DLDDZ,HashCode)
        其中Hash_Code的取值为:DLDMC_DLDDZ
        当有一笔新记录要入库时,系统首先检索库中原表的UNIQUE_ID_IN_SOURCE_SYSTEM字段与新记录的UNIQUE_ID_IN_SOURCE_SYSTEM字段是否有相同。如果没有相同的,证明该记录是一条新的业务记录。如果原表中有相同的记录,证明该记录是业务表中已存在的旧记录,此时系统就会检索具有相同UNIQUE_ID_IN_SOURCE_SYSTEM值的记录的HashCode与新记录的HashCode是否相同。如果HashCode相同,则说明该业务没有改变,则保留;如果HashCode不同,则说明这是一条在同一个业务系统下的被更改了的记录,则进行插入操作。
  由于HashCode是DLDMC与DLDDZ拼接而成,所以实际的机构表中并不需要增加这个字段,只需要在左数据抽取过程中把这个字段拼接出来,然后提供给系统检索,所以代理点表里面其实是并不存在HashCode字段的。
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值