千锋教育-做有情怀、有良心、有品质的职业教育机构
该问题回答两种方式:没有用过拉链表;用过拉链表。(无论是否用过都一定要把你的认知表达出来)
1、没有用过拉链表,因为我们的开发场景中暂时不设计,我这边可以就简单把我对拉链表的认知给说一下:首先拉链表是在面对处理的数据量比较大,且计算要求保留历史变更数据。其主要的核心在于通过设置两个字段作为数据是否有效性的开关(begin_date,end_date),这样做的目的是保证在表的数据,在某一个时间区间内(时间粒度得统一,月,日,时,分…)有且仅有一条有效的数据。
2、使用场景:一般再变更历史数据,又需要对变更前的数据留存的时候。
eg1:
表t_user_score_info 用于记录用户的账户积分,当积分有变动时才会有数据,且每天(时间粒度为天)最多仅有单条积分数据
用户每当有新的积分变动时,旧的积分相对于当前就没用了,所以只有最新的才有用。
无论是积分、余额或者业务表需要进行状态或值更新的表都可以使用。
相关推荐