系统业务进化重构之数据迁移--落地思考

系统都是进化出来的,不要过度设计.

一开始设计支付表. 有代金券id,代金券抵扣金额.

业务进化后后面有多种优惠,业务水平拆分为两种业务.

支付业务.优惠维护业务.

一个订单:   表1:乘客支付金额和乘客抵扣金额表.

                   表2: 订单id, 优惠类型,优惠金额,优惠id.

落地方案1: 代码需要兼容老版本: 查询代金券id,需要先查新表,后查原表.

数据同步后,删除老字段.. 这样就能做到不停服上线.
 落地方案2: 或者通过细粒度的控制. 设置一个临时字段,代表该orderId是否迁移,默认非. 新增的都主动设置.迁移的时候也去主动设置. 这样能做到无缝迁移. 且不需要读两次,只能读到一次.但需要去读下redis.

你可能感兴趣的:(架构,项目和管理)