電商系統訂單分表方案怎麼設計更好

來源:互聯網
上載者:User
題目背景:
之前做電商運營,打算轉行做開發,參加了幾個面試,幾乎每家都會問到大資料量時的解決方案。暫時不討論問這個題目的合理性,既然有需求,那自己就加強吧。所以基於目前個人做的一個系統,計劃向大資料量做擴充設計。

涉及的業務情境:
(1)市場中有多個賣家(seller),可查看、處理包含該賣家商品的訂單(order)
(2)買家(user)可查看跟蹤自己的訂單

訂單表設計方案及查詢時處理邏輯
方案1(初始方案)
(1) 原始訂單表按照買家id模數分表
(2) 建立買家與訂單的映射關係表(也會資料量很大,可再按orderID模數分表)

查詢處理邏輯:
1買家查詢自己所有的訂單:按照userId模數找到對應的訂單分表,取資料
2買家按照訂單號查詢訂單:根據orderId從買家訂單映射中獲得userId,然後仍然是按照userID模數找到對應的訂單分表
問題:這樣拆分後,與賣家有關的訂單就被拆在多張表中,賣家查看自己的訂單時還是要掃描所有資料

方案2(修改方案1)
對原始訂單也按照賣家id模數分表,然後再建立賣家與訂單的映射關係
問題:該方案雖然能實現設定的商務邏輯,但訂單資料要儲存兩份,要維護兩個映射表

方案3(修改方案2)
學習了淘寶的訂單系統設計,將訂單拆分為買家庫、賣家庫,訊息中介軟體進行訂單同步(類似於方案1、2的對買家、賣家分表麼),似乎是不關注訂單資料冗餘,但沒想明白如何按照訂單查詢,所以借鑒設計了方案3:
(1)按照userId模數分表
(2)按照sellerId模數分表
(3)按照orderId模數分表
相比方案1、2,少維護了一張表,但有兩份資料冗餘
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.