数据snapshot的保存
两种方式
行级
这个方式最好配合表继承来处理,创建一个父表主要是定义表结构,不存数据。然后创建业务表和snapshot表都继承该父表。然后创建触发器在insert和update后把数据刷入snapshot(为什么要后置触发呢,这样保证在snapshot可以看到整个生命周期)。这里有一个坑,就是如果业务表继承了其他的表,那么修改业务表的业务父表的表结构时需要注意。
json
另一个种做法就是把整个记录作为json存在一个snapshot表,这个snapshot表可以多个对象共享。
因为json一般也不会去关联查询(用历史数据join现在的记录会有点怪)
如果业务记录本身就是json这样最妙
是否还需要业务表
答案恐怕是需要
需要注意的坑
手工改数据可能导致不一致