首頁  >  文章  >  資料庫  >  mysql電商平台的技術架構是什麼

mysql電商平台的技術架構是什麼

王林
王林轉載
2023-06-01 13:59:47965瀏覽

一、電商平台標準化套件

A.商城系統

1.設定:網站設定;帳號同步;上傳設定;SEO設定;訊息通知;支付方式;權限設定;配送地區;

2.商品:分類管理;品牌管理;商品管理;圖片空間;

3.店舖:店舖管理;店鋪等級;店鋪分類;二級網域名稱;

4.會員:會員管理;積分管理;預存款;分享綁定設定;買家動態;

5.交易:訂單管理;退款管理;諮詢管理;檢舉管理;評價管理;投拆管理;

6.網站:文章分類;文章管理;系統文章;頁導覽;廣告管理;首頁管理;建議位;

7.營運:基本設定;團購管理;兌換禮品;活動管理;

8.統計:會員統計;店內統計;銷售分析;商品分析;行銷分析;

B.圈子(BBS)

圈子設定;成員頭銜設定;圈子分類管理;圈子管理;圈子話題管理;圈子成員管理;圈子舉報管理;

C.CMS(文章管理系統)

CMS管理;首頁管理;文章管理;文章分類;畫報分類;專題管理;標籤管理;評論管理;

D.行動裝置

首頁設定;分類圖片設定;下載設定;

##二、電商平台的技術架構

A.應用程式伺服器

1.兩大類:前端伺服器(主要完成使用者的回應)、後端伺服器(主要完成資料處理)

2.Nginx在記憶體分配方面表現良好,使用多執行緒來處理請求,使得多個執行緒之間可以共享記憶體資源,從而使記憶體使用量大幅減少。此外,我們採用分段內存分配策略,根據需求及時分配並釋放內存,因此總體內存佔用很少,能夠支援大量的並發連接。

B.負載平衡

1.F5(F5 BIG-IP),官方名稱為本地流量管理器,可做4-7層負載平衡。

2.LVS(Linux Virtual Server),針對大業務量的網路應用程式(如新聞服務、網路銀行、電子商務等)。 LVS和Keepalived組合擁有極強的負載抗性能力、簡單的配置、以及穩定的運行,這種方法適用範圍廣泛。

⑴LVS三種工作模式:

①VS/NAT(Virtual Server Via NAT),網路位址轉換技術,由一台負載平衡伺服器和後端幾台真實伺服器組成了一個伺服器集群。優點:只需要一個IP位址配置在調度伺服器上,伺服器群組可以用私有的IP位址。缺點:伸縮能力有限。

②VS/TUN(Virtual Server via IP Tunneling),連線調度和管理與VS/NAT中的一樣,只是封包轉送方法不同。重寫後的句子: 此方案的優點在於可以大幅增加伺服器的負載調度數量,進而建構出高效能的超級伺服器。必須支援「IP Tunneling」或「IP Encapsulation」協定的伺服器均為必要條件。

③VS/DR(Virtual Server via Direct Routing),調度器根據各個伺服器的負載情況,動態地選擇一台伺服器,不修改也不封裝IP報文,而是將資料幀的MAC位址改為選出伺服器的MAC位址,再將修改後的資料訊框傳送到伺服器群組的區域網路。要求負載調度器與實際伺服器都有一塊網卡連在同一實體網段上,伺服器網路設備不作ARP回應,或能將封包重定向到本地的Socket連接埠上。

⑵LVS的調度演算法

輪詢調度;加權輪詢調度;最小連接調度;基於局部性的最小連接;待複製的基於局部性的最小連接;目標位址散列調度;來源位址雜湊調度;

3.Nginx:可以按輪詢、IP_HASH、URL_HASH、權重等多種方法對後端伺服器進行調度,同時也支援健康檢查。對網路依賴性小,工作在第7層。

4.HAProxy:能夠補充Nginx的一些缺點,如Session保持,Cookie引導等;支援URL檢測;從效率上講,優於Nginx;可以對MySQL讀取操作進行負載平衡;

C.快取

1.兩個部分:檔案快取(靜態內容)、資料快取 

2.客戶端快取:Header(“Cache-control :must-revalidate」);Header(“Expires:”.gmdate(“Did M Y H:i:s”,time() (60*60*24*30)));//30天過期php

3.CDN加速

4.靜態檔案快取:Varnish/Squid

#5.資料快取:memcache、redis

##D.資料儲存

1.關係型資料庫:MySQL、Oracle、SQL Server

2.記憶體型資料庫:Redis、MongoDB(文件型)

3.分散式資料庫: HBase

4.MySQL可擴充方案:MySQL Cluster;DRBD硬碟網路映像;MySQL Repliction(建議);MySQL資料切分;

5.資料切分:透過某種特定演算法,將存放在同一個庫(表)中的資料分散存放到多個庫(表)中,以達到分散單台設備負載的效果。

6.垂直切分:依照不同的表格切分到不同的資料庫(主機)之上。適用於業務之間耦合度較低、互相影響小、業務邏輯清晰的系統,其規則簡潔、實施方便。

水平分錶:根據資料表中的邏輯關係,透過某種演算法將資料拆分成多個表。拆分規則本身就較根據表名來拆分更為複雜,後期資料維護也更複雜,但對於減輕系統壓力來說更好,是在高並發大數據下的推薦處理方法。

E.檔案儲存

共用儲存:NFS

#檔案儲存:HDFS、FastDFS

F.訊息佇列

ActiveMQ;Gearman;MemcacheQ;RabbitMQ;HTTPSQS;淘寶MetaQ;NSQ等,另外基於Memcache/Redis的訊息佇列也容易部署、易維護和易擴展。

G.搜尋設計

lucene、sphinx以及國產xunsearch

三、商城套件的設計與實作

#A.會員模組

1.模組構成:註冊後預設為買家。成為賣家需要在註冊後提交入駐申請並通過審核。買家賣家登入口獨立存在。作為網站的基礎,基本上涉及了網站各個模組。

2.設計想法:

①設計需求:

  • #介面簡潔方便:註冊登入簡潔方便,一個手機號碼或信箱密碼

  • 多收集會員資訊:會員中心收集

  • #差異化管理:會員等級制度與管理制度

  • 增加會員黏性

  • 會員傳幫帶

  • #高內聚低耦合:買家和賣家中心分為獨立模組

  • 進行資料分析

##②資料表設計

  • 主從配合:主表與從表格


  • 合理使用冗餘:例如商店表中也儲存使用者名


  • 結構清晰:例如使用者表與商家表分開


③模組設計

  • 買家會員功能需求:註冊登入;買家會員等級;資料管理;帳號安全;其他相關功能


  • 專家帳號功能需求:商家開店;權限管理;建立子帳戶;店鋪資料管理;店鋪裝修;店鋪分類;店鋪消費;其他相關功能


  • ##3.開發和使用

會員合理分層;運用口碑行銷;了解會員的生命週期;會員關懷;合理全面的會員資料分析;

B.商品模組

1.幾個小模組:商品分類;品牌;類型;規格與規格值;屬性與屬性值;商品;

2.模組構成:

①商品分類:新增、編輯、刪除、匯入匯出,很少修改,快取檔案

②品牌:新增(平台新增及商家添加,商家新增需要審核)、編輯、刪除

③規格與規格值:平台進行增刪改,店鋪只能依規格新增規格值

④類型與屬性:平台進行操作

⑤商品:由店鋪進行增刪改。平台可審核,可以刪除。

3.設計想法:

①商品相關資料表設計

    #商品分類表與型別表是一對多的關係,商品分類透過類型與屬性、規格、品牌產生關聯。與商品表是一對多

  • 屬性系列表包括屬性表和屬性值表,是一對多的關係,屬性表與型別表是多對一的關係,屬性值表與商品表以及屬性與商品關係表為橋樑是多對多的關係

  • 規格系列表包括規格表和規格值表,是一對多的關係。規格表與類型表以型式與規格關係表為橋樑是多對多。規格表、規格值表與商品表的關係是多對多的關係。

  • 品牌表以類型與品牌關係表為橋樑,與類型表是多對多。品牌表與商品表是一對多。

  • 商品系列表包含商品表、商品公用表、商品圖片表。商品表和商品公共表是多對一,和商品圖片表是多對多

  • #②平台管理商品的相關設計思路

平台管理員需先完成商品分類、品牌、類型、規格、屬性的設定

③商家發布商品的設計想法

設定規格值;商品圖片;圖片空間;庫存警報;關聯板式;

④使用者檢索商品的設計想法

使用全文檢索

#3.程式碼實作

刪除商品分類時需要清理與商品分類相互相關的資料;

C.促銷模組

1.模組構成:

①常用促銷方式:

    折價促銷

  • 團購:促進電商網站的銷售,直接帶去電商網站的註冊會員數增長,透過促進客戶的嘗試購買,發現平台存在的問題,擴大電商網站的品牌曝光度與知名度;
  • #

  • 惠贈式促銷:買一送一、買送禮品、買送積分、買送代金券;

  • 搭配銷售:客戶在瀏覽一件商品時再向他推薦其他商品,這件商品可以與其他商品搭配起來一起銷售,同時總價進行相應幅度的降低。

  • 限時限量促銷

  • #抽獎促銷


  • ##抽獎促銷


    互動式促銷:好評有禮、邀請有禮

  • 附加價值促銷:封包、附加服務

  • 2 .設計想法
  • ①業務的設計原則

  • 吸引註意力


  • ##說服功能

  • 回饋訊息


  • 刺激銷售


  • ②模組設計實例(團購模組)


  • 套餐管理:平台提供給店舖

  • 團購管理:平台進行審核,並且可以隨時下架

  • 「即將開始」:在團購中加入
搜尋設定:商品分類、價格區間等

詳細資料:圖片、價格、描述醒目,清晰可見的狀態

團購訂單:統一到訂單模組中

3.開發與使用

開發原則:簡單易懂、吸引眼球、靈活組合、數據統計
  • 注意:利人利已、搭配使用、不繁瑣、吸引力足夠、實事求是、一諾千金


    D.購物車模組
  • 1.模組構成:新增、刪除、編輯、收藏商品的功能

    2.設計想法
  • ①設計需求:


  • #持久化儲存:登入前cookie儲存,登入後資料庫儲存,下單成功後清除已購買的商品

  • 支援加入多種類型的商品

  • 支援加入多個店舖商品

  • 操作便利

  • #資料完整性:促銷資訊、商品小計、店鋪小計等


  • 資料準確度:關鍵資訊(庫存、價格、狀態等)


  • ②資料表設計


  • 表格關係核心欄位不可缺少:涉及會員、店鋪、商品表等

  • #必要的冗餘欄位:商品價格、名稱、圖片、店鋪名等


  • 資料準確度:關鍵節點處理時去查詢資料庫得到最新有效資料


  • ##③購物車模型設計

  • 增刪改查操作

  • #入口封裝:對cookie或資料庫等操作對外表現為一個入口,以參數形式分流

資料統計

#資料完整性與準確度


  • E.配送模組

  • 1.模組構成:平台需要初始化一些基本訊息,如全國或地方性的地區行政區域、主要的快遞公司等;商家需要設置快遞公司,;運費模板不但支持不同地區不同運費,還避免了商家對商品運費的重複設置,減輕工作量;買家下單時,要設置收貨信息,系統據此來計算運費。


    2.設計想法

  • ①設計要求

  • #內建行政區域

  • ##內建配送公司


  • 設定貨到付款地區


  • 運費範本

收貨地址

物流追蹤

#②資料表設計:收貨地址表、發貨地址庫表、貨到付款區域表、運費範本表等

3.功能實現

①配送區域:一是標準的行政區域設定;另一個是貨到付款區域的設定;配送地區頁面的載入時的全部地區資料都由伺服器端來完成,在載入頁面時,將已支援貨到付款縣ID放入JS陣列中,在編輯地區時,上級地區是否選取以及數量的變更由客戶端JS來完成

②配送公司:至少包含公司名稱、網址、公司代碼等
  • ③收貨地址:可以保存N個,設定一個預設收貨地址


    F.訂單模組
  • 1.設計想法

    #①訂單狀態

訂單狀態是訂單流程的重要標誌,訂單處於哪個階段,允許哪個角色來處理,主要的判斷依據

#一般使用數字標識,至少包含預設、取消、支付、發貨、收貨,還可能有刪除、審核、備貨、出貨、鎖定、退貨、退款、仲裁等等

  • ②訂單金額


    指訂單中涉及金錢元素的統稱,至少包括商品單價、商品總價、訂單總金額、優惠金額、運費、代金券面額、退款金額等

    ###③訂單編號##### #建義可以充分考慮時間、隨機數、商家ID、會員ID、自增ID這些相關元素,設計的目的就是保證在高並發下,訂單編號的重複幾率降到最低#######④庫存############可銷售庫存######
  • 訂單佔用庫存

  • 不可銷售庫存

  • 鎖定庫存:在促銷活動中

  • 虛擬庫存

#⑤合併支付

可以把不同商家訂單合併統一支付

⑥角色權限 

  • 買家:訂單取消、刪除(放入回收站)、退款、退貨、收貨、評估等

  • 商家:訂單審核、關閉、出貨、售後處理等

  • 平台:訂單取消、變更收款狀態、刪除、仲裁等

⑦表設計

  • #訂單主表:存放主要及常用的訂單訊息,如訂單編號、金額、運費、狀態等

  • 輔表:輔助訊息,如出貨資訊、發票資訊、收貨人資訊、促銷資訊等。

  • 訂單商品表:有些話訂單中的商品清單資訊

  • 支付單表:為合併付款設計,儲存一個支付單號,N筆訂單表記錄使用一個支付單號

  • #訂單日誌表:在訂單內容變更時記錄操作日誌,包括操作人、操作時間、操作內容等

2.下單

系統在產生訂單時會做大量的處理工作,例如處理收貨資訊、發票資訊、促銷資訊、運費、代金券、支付單、訂單、日誌等。

G.支付介面

1.存取支付結果兩種方式:一種是同步的,透過瀏覽器進行跳躍通知;一種是非同步的,即伺服器後端執行。

2.設計需求:安全性;資料完事性(事務處理);擴充性;

#3.資料庫設計:至少包含付款方式的名稱和識別碼,識別碼要與支付介面API程式有些話的目錄名稱一致,此外還要保存序列化後的支付介面配置資訊及支付介面狀態;

H.退單模組

1.設計想法

①在有新退款或退貨申請但又沒完成訂單(確認收貨時),為防止產生糾紛,要鎖定訂單狀態

②退貨:在退款流程基礎上增加了買家出貨和商家收貨的步驟。

如果商家不同意退款或退貨,買家可以再次提出申請或向平台投訴商家,並提交相關證據,由系統管理員進行仲裁。

④可以使用一個表,用一個欄位標識是退款還是退貨

⑤退款退貨原因是由系統管理員在後台錄入,買家在提交申請時選擇。

2.開發技巧

①要先定規則、理清思路,對於邏輯中有不明白的地方,及時溝通解決。

②盡量做到程式碼的利用,一定要進行伺服器端的資料驗證。

I.結算模組

結算是平台和商家之間的帳單結算,定期結算,出帳後系統會等待商家對帳單進行確認,如果無誤,商家確認後進入系統審核環節,系統審核後提交到財務部門進行付款操作;付款完成後,在後台錄入付款相關信息,賬單結算完成。

1.設計想法

①資料表設計:帳單表,包括日期、訂單總金額、總運費、退貨總金額、佣金總金額、退還佣金金額、店鋪費用、應結金額以及結算狀態等欄位;帳單總表是對每個月所有商家結算資訊的統計總和;

②結算流程設計:出賬,系統自動計算本月的結算帳目

【執行時機】自動與手動;

【結算物件】上個月發生的交易完成的訂單或退單;

【計算公式】訂單金額、佣金金額(佣金=商品實際售價*購買數量-優惠分攤金額)、退單金額、退還佣金、店鋪促銷費用;

③平台應付金額=訂單金額-佣金金額-退單金額退還佣金-店鋪促銷費用;

④對帳:平台提供出訊息,核對無誤後確認並提交平台審核。完成審核後,進行財務流程以進行付款。付款完成後,輸入相關的付款資訊並提交,從而完成結算流程。

J.統計模組

1.讓資料分析介入營運:以資料為基礎,智慧地制定營運決策;以資料為目標,有效執行營運計劃;以資料為依據,最佳化商務流程;

2.模組構成:

①瀏覽量(PV),瀏覽器載入網頁次數的總和;
  • ②訪客數(UV),用Cookie確定絕對統一訪客;


    ③轉換率,指產生實際消費的客戶和來到網站的總客戶數量的比值。成交轉換率=成交客戶數/總訪客數;

  • ④平均訪問深度,指用戶在一次瀏覽你的網站的過程中瀏覽了你網站的頁數,就是PV和UV的比值;
  • 如何提高存取深度?

  • 網站合理的排版和佈局;


    #######網站的內容;############ ###合理的導航和適當的內部連結錨文本;######

⑤網站人均停留時間,平均網站停留時間=網站總停留時間/會話的數量(訪問次數)

⑥頁面跳失率,指訪客到達該目標頁面,到達後沒有繼續訪問該網站其他頁面既離開,稱之為一次Bounce!也就是跳失了。跳出率計算公式為:離開該頁面的造訪次數除以該頁面的總造訪次數

⑦下單商品數

⑧商品下單量

平均交易金額是指在一定時間內,網站每位會員購買商品的平均金額,也稱為客單價。客單價可以表示為每位顧客的平均消費金額,計算公式為銷售總額除以顧客總數,或銷售總金額除以成交總筆數

⑩重複購買率,指消費者對該產品或服務的重複購買次數。一是,所有購買過產品的顧客,以每個人為獨立單位重複購買產品的次數;另一種演算法是單位時間內,重複購買的總次數佔比;推薦第一種;

# 3.設計想法

①資料本身的設計原則

  • 要有整體的概念:銷售整體資訊(下單金額、下單量、平均客單價) ;商品總資料(下單商品數、商品平均價格、新增商品數、商品總數、7日內商品銷售TOP30);客戶總資料(會員總數、新增會員數、下單會員數);店鋪總體資訊(店舖總數、新增店舖總數、7日內店舖銷售TOP30)

  • #統計要細緻到一點:細緻到某個會員、某個時間點、某個地區等

  • 定期資料分析:同比,今年第N月與去年第N月比(年比發展速度=本期數/去年同期數*100%;同比成長速度=(本期數-去年同期數)/去年同期數*100%);環比,就是報告期間與前一統計時間段比較(環比發展速度=(本期數/上期數)*100%;環比成長率=(本期數-上期數)/上期數*100%)

  • #重視日常營運資料:客戶平均造訪頁數、平均停留時間、跳出率、商品被收藏次數等

  • 資料應具有即時性

②業務層級的設計原則

  • 層層深入剖析業務:電商網站資料分析依照產業分析->店鋪分析->品牌分析->商品、會員的分析,由大到小層層深入

  • 直覺易懂:表示變化趨勢用折線圖;簡單比較用長條圖;用漏斗圖展示流程轉換率;表示比例最好用圓餅圖或環形圖;表示在區域中的分佈情況使用統計地圖;

③模組設計的設計原則:可移植性;擴展性;簡單性和直覺性;快取的運用;

④資料表的設計原則

⑤多建立快取資料表;字段簡潔,減少複雜判斷;必要的冗餘字段,減少聯查(會員名稱、商品名稱、店鋪名稱等等);

4.開發使用

①資料營運應注意以下幾點問題:

②人的問題:對資料的重視應該從領導做起;

③實際運用:將資料實際使用起來;

④不要最好只求合適:選擇一個資料探勘演算法時,要弄清楚它是否適合我們要解決的問題;

⑤求真實:挖掘時盡可能提取有效資訊;

⑥重複性:需要一段時間重新挖掘;

⑦資料累積:資料分析需要累積一定量的數據,經過資料探勘所得的結果才有說服力;

⑧快速反應:資料產生後快速瓜,得出結果,使效果最大化;

# K.預存款

1.會員對預存款主要有三種操作:儲值、提現和購物

2.設計思路

①設計要求:安全性;資料完整性;

②資料表設計:

  • 「儲值表,記錄會員的儲值資料,主要欄位充值單呈、會員資料、儲值金額、儲值時間、儲值狀態等,有管理員操作還應記錄管理員身份

  • #提現表,記錄會員的提現信息,主要字段提現單號、會員信息、提現金金額、收款銀行資料、申請狀態以及平台的付款資訊(付款時間、操作人等)

  • #日誌表,記錄所有變更預存款時的作業記錄,包括對可以金額和凍結金額的變更都要作詳細的記錄,主要字段操作人資訊、操作類型(下單、提現、充值、退款等)、可用預存款、凍結預存款、操作時間、備註等

以上是mysql電商平台的技術架構是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除