1. 程式人生 > >系統業務進化重構之資料遷移--落地思考

系統業務進化重構之資料遷移--落地思考

系統都是進化出來的,不要過度設計.

一開始設計支付表. 有代金券id,代金券抵扣金額.

業務進化後後面有多種優惠,業務水平拆分為兩種業務.

支付業務.優惠維護業務.

一個訂單:   表1:乘客支付金額和乘客抵扣金額表.

                   表2: 訂單id, 優惠型別,優惠金額,優惠id.

落地方案1: 程式碼需要相容老版本: 查詢代金券id,需要先查新表,後查原表.

資料同步後,刪除老欄位.. 這樣就能做到不停服上線.
 落地方案2: 或者通過細粒度的控制. 設定一個臨時欄位,代表該orderId是否遷移,預設非. 新增的都主動設定.遷移的時候也去主動設定. 這樣能做到無縫遷移. 且不需要讀兩次,只能讀到一次.但需要去讀下redis.