熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

電子商務--訂單

2013-11-13 10:08:27  來源: .NET編程 

  訂單是整個電子商務的核心整個電子商務的流程也是圍繞訂單的狀態執行的這篇博客主要向大家介紹訂單號的生成方式

  現在大型電商網站大多都有好幾種下單途徑比如通過Web網站下單通過打電話到呼叫中心下單(CallCenter)使用手機Wap下單如果只采用單數據庫來存儲訂單信息的話其隨著訂單量的增加單數據庫寫壓力必然增大數據庫服務器就會不堪重負所以大都會根據業務采用分庫做法如下

  Web網站來源訂單調用生成訂單API後存儲在Web訂單庫CallCenter網站調用生成訂單API後存儲在CallCente訂單庫Wap來源訂單調用訂單生成API後存儲在Wap訂單庫最後需要把Web訂單庫CallCenter訂單庫Wap訂單庫等數據同步到後台訂單主庫中後台訂單主庫是我們的核心庫存儲所有訂單數據那麼我們怎麼才能把不同庫中的訂單數據同步到後台主庫中需要滿足什麼條件呢?電商網站中訂單表大多都是以訂單號做表的主鍵我們必須保證各個子訂單庫中存儲的訂單號不能重復這樣才能保證可以安全的同步到後台主庫中

  目前幾個大型電子商務網站是如何生成訂單號的呢讓我們先看看訂單號的格式吧京東商城訂單號格式;蘇寧易購訂單號格式;凡客誠品訂單號格式;銀泰網訂單號格式

  我們先來分析一下凡客誠品和銀泰網的訂單號生成規則初看一下凡客誠品和銀泰網訂單號都含有這是因為這張訂單都是號下的訂單我們總結一下凡客的訂單規則業務編碼+年的後位+月+日+訂單數銀泰網的訂單號規則年的第三位數+業務編碼+年的後位+月+日+訂單數其實現方式應該是在數據庫中新建一張訂單量記錄表維護每天的訂單量生成訂單時根據當天的日期查詢這張表的訂單數量加然後組合業務編碼(比如業務編碼Web=CallCenter=Wap=)即為訂單號生成訂單成功後在回寫數據庫(需記錄訂單量)這種方式在高並發下會頻繁更新訂單量記錄表很容易產生鎖表

  京東商城和蘇寧易購的訂單號看不出規則我們猜想應該是 有一個全局數據庫這個數據庫中只有一張訂單表(Order)表Order只有一個自增的字段Id這個自增的字段Id就是訂單號所有生成訂單的API會首先訪問全局數據庫的Order表獲得訂單號然後再生成訂單這樣就可以保證子庫訂單號不重復其實現方式避免了頻繁的更新操作只有Insert操作性能要好很多

  感謝閱讀希望這篇文章能給你帶來幫助!


From:http://tw.wingwit.com/Article/program/net/201311/12674.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.