1 什么是拉链表
记录每条信息更改信息,以记录的生命周期为单位,一旦一条记录的生命周期结束,就重新开始一条新的记录,并把当前日期放入生效开始日期,如果当前信息至今有效,在生效结束日期中填入一个极大值(如9999-99-99或9999-12-31)
订单ID | 订单金额 | 状态 | 生效开始日期 | 生效结束日期 |
1 | 2000.00 | 待支付 | 2019-01-01 | 9999-99-99 |
2 | 1000.00 | 待支付 | 2019-01-01 | 2019-01-01 |
2 | 1000.00 | 已支付 | 2019-01-02 | 9999-99-99 |
3 | 210.00 | 已支付 | 2019-01-01 | 9999-99-99 |
4 | 3300.00 | 待支付 | 2019-01-02 | 9999-99-99 |
5 | 55.00 | 已支付 | 2019-01-02 | 9999-99-99 |
2 为什么要做拉链表
(1)需要查看某些业务信息的某一个时间点当日的信息
(2)数据会发生变化,但是大部分是不变的,比如订单信息从下单、支付、发货签收等状态经历了一周,大部分时间是不变化的。(无法做每日增量)
(3)数据量有一定规模,无法按照每日全量的方式保存。
3 拉链表形成过程
1)假设,2019-01-01的订单全量表是最初的订单表
订单id | 状态 |
1 | 待支付 |
2 | 待支付 |
3 | 已支付 |
2)初始的拉链表就等于最开始的2019-01-01的订单全量表