CodeGym /課程 /SQL SELF /Marketplace Database Architecture

Marketplace Database Architecture

SQL SELF
等級 61, 課堂 0
開放

既然你們都已經懂基本的東西了,現在是時候在真實專案上試試你的本事啦。一般來說,實際專案的資料庫會分成:

  • 小型的 - 100 張 table 以下
  • 中型的 - 100 到 1000 張 table
  • 大型的 - 1000 張 table 以上

沒經驗的話,真的很難想像為什麼會需要 100+ 張 table。所以今天就讓你體驗一下這種規模的資料庫 :)

我會給你一個很真實的 e-commerce 平台(Marketplace)關聯式資料庫。這個資料庫分成好幾個schema,每個 schema 都負責不同的領域:用戶、商品、訂單、物流、行銷、客服等等。

這個專案總共有109 張 table,分在 11 個 schema 裡。每張 table 都有 foreign key,還有設計好可以用 lookup table 跟 system table 來擴充。

資料庫結構

Schema user — 用戶與活動

Schema user 包含帳號、個人資料、聯絡資訊、登入紀錄、評論還有社交關係的 table。

table 範例:

  • account — 註冊資料
  • profile — 個人資訊
  • review, comment — 評論跟留言

Schema product — 商品與目錄

Schema product 包含商品描述、不同規格、屬性、圖片、狀態還有異動紀錄。

table 範例:

  • product, variant — 商品與規格
  • attribute, tag — 屬性跟標籤
  • supplier, composition — 供應商跟組成

Schema order — 訂單與購物車

這裡有訂單建立、追蹤、狀態、退貨跟付款的機制。

table 範例:

  • order, order_item
  • status_log, return, cancellation
  • invoice, discount

Schema logistics — 倉庫、配送、路線

管理庫存、調度、配送跟路線。

table 範例:

  • warehouse, inventory, transfer
  • shipping_method, package
  • driver, carrier, route

Schema payment — 支付與交易

存放支付系統、交易、錢包跟退款的資訊。

table 範例:

  • payment, transaction, refund
  • wallet, wallet_transaction
  • gateway, method

Schema marketing — 活動與廣告

這裡有促銷碼、banner、推薦計畫跟精選商品的 table。

table 範例:

  • campaign, promo_code, discount
  • referral_program, featured_product

Schema support — 技術支援

ticket 系統、訊息、狀態還有客服回饋。

table 範例:

  • ticket, ticket_message, ticket_status
  • agent, feedback

Schema analytics — 指標與行為

追蹤 session、user 行為、轉換率跟各種指標。

table 範例:

  • event, session, click, page_view
  • goal, metric_snapshot

Schema admin — 管理與設定

admin、角色、稽核紀錄還有系統設定的 table。

table 範例:

  • admin, admin_role
  • audit_log, setting, api_token

Schema content — 靜態頁面與區塊

CMS 用的內容:頁面、選單、翻譯跟版本。

table 範例:

  • page, block, menu, translation, version

Schema ref — 參考資料與 meta-table

類型、狀態、國家、退貨原因等等。

table 範例:

  • country, currency, status, payment_status
  • refund_reason, inventory_change_reason

建立 table

為了讓你輕鬆一點,我會直接給你所有 table 的建立 script。

你只要下載 SQL script,然後跑一下就好。

  1. 在 PostgreSQL 中建立一個空的資料庫。
  2. 下載結構描述。
  3. 匯入資料庫結構:
psql -U postgres -d marketplace_db < init_schema.sql

載入資料

還有所有資料表的資料。

留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION