
先舉個例子:電商系統,用戶下單可以使用卡券支付,此時,訂單的金額會有兩部分構成:商品金額 和 卡券抵扣金額,通常,這樣的資訊在訂單詳情頁也會展示出來,那么,我們的訂單表里,關于金額,應該有三個欄位:商品金額、卡券抵扣金額 和 訂單金額,
先舉個例子,在ToB的系統中,客戶通常會通過銷售代表來引入和維系,那么,系統里會有一個保存客戶與銷售代表之間關系的 客戶關系表 ,當客戶產生交易后, 交易表 除了要記錄客戶資訊外,還要記錄當時的銷售代表,因為在企業實際經營程序中,客戶與銷售代表的關系會發生變更,例如某某銷售代表離職或調崗,其負責的客戶會轉交給其他銷售代表,
交易表 記錄交易發生時的銷售代表,就是我所說的“當時”,
相應地,在企業管理系統里,會有兩種查看或統計銷售業績的需求,第一種是依照當時的客戶關系來查看,另一種是依照當前的客戶關系來查看,
第一種需求很好實作,因為在 交易表 里記錄了銷售代表,
那么,第二種需求怎么實作呢?
第二種需求就是通過 交易表 與 客戶關系表這兩張表進行關聯來實作,這似乎也很容易理解,
那么,在分布式系統中,當 交易表 和 客戶關系表分屬在 交易系統 和 CRM系統 時,對于上面的第二種需求,該如何實作呢?
我先列舉兩個不當的解決方案,
1.
2.
比較好的解決方案,可以將 CRM系統 的 客戶關系表 的資料同步到 交易系統 里,這樣就可以像上面那樣的兩表關聯來實作了,
你也許會擔心資料的一致性問題,對于這個擔心,可以考慮使用訊息佇列的方式,保證訊息的可靠傳輸,然后,由 交易系統 發起,定期與 CRM系統 比對客戶關系資料,畢竟, 客戶關系表 是個瘦表,資料量并不大,
當看到一些不好的代碼時,會發現我還算優秀;當看到優秀的代碼時,也才意識到持續學習的重要!--buguge
本文來自博客園,轉載請注明原文鏈接:https://www.cnblogs.com/buguge/p/16907571.html
<style>hr.signhr{width:80%;margin:0 auto;border: 0;height: 4px;background-image: linear-gradient(to right, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.75), rgba(0, 0, 0, 0))}</style>
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/536249.html
標籤:其他
上一篇:談談我作業中的23個設計模式
