CodeGym /Các khóa học /SQL SELF /Kiến trúc Database Marketplace

Kiến trúc Database Marketplace

SQL SELF
Mức độ , Bài học
Có sẵn

Vì tụi mình đã biết kha khá rồi, giờ là lúc thử sức với kiến thức trên một dự án thực tế. Thường thì database của các dự án thực tế được chia thành:

  • nhỏ - tới 100 bảng
  • vừa - 100-1000 bảng
  • lớn - từ 1000 bảng trở lên.

Nếu chưa có kinh nghiệm, khó mà tưởng tượng tại sao lại cần tới 100+ bảng. Vậy nên hôm nay mình sẽ cho các bạn cơ hội đó :)

Mình sẽ đưa cho các bạn database quan hệ thực tế cho nền tảng e-commerce (Marketplace). Database này được chia thành các schema, mỗi cái phụ trách một domain riêng: người dùng, sản phẩm, đơn hàng, logistics, marketing, support v.v.

Dự án này có 109 bảng, chia thành 11 schema. Mỗi bảng đều có foreign key, và đã chuẩn bị sẵn để mở rộng bằng các bảng tham chiếu và bảng hệ thống.

Cấu trúc database

Schema user — Người dùng và hoạt động

Schema user chứa các bảng về tài khoản, profile, thông tin liên hệ, log đăng nhập, đánh giá và kết nối xã hội.

Ví dụ bảng:

  • account — dữ liệu đăng ký
  • profile — thông tin cá nhân
  • review, comment — đánh giá và bình luận

Schema product — Sản phẩm và catalog

Schema product chứa mô tả sản phẩm, các biến thể, thuộc tính, hình ảnh, trạng thái và lịch sử thay đổi.

Ví dụ bảng:

  • product, variant — sản phẩm và biến thể
  • attribute, tag — thuộc tính và tag
  • supplier, composition — nhà sản xuất và thành phần

Schema order — Đơn hàng và giỏ hàng

Chứa cơ chế đặt và theo dõi đơn hàng, trạng thái, hoàn trả và thanh toán.

Ví dụ bảng:

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

Schema logistics — Kho, giao hàng, tuyến đường

Quản lý tồn kho, di chuyển, giao hàng và tuyến đường.

Ví dụ bảng:

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

Schema payment — Thanh toán và giao dịch

Lưu thông tin về hệ thống thanh toán, giao dịch, ví và hoàn tiền.

Ví dụ bảng:

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

Schema marketing — Khuyến mãi và quảng cáo

Chứa bảng về mã khuyến mãi, banner, chương trình giới thiệu và sản phẩm nổi bật.

Ví dụ bảng:

  • campaign, promo_code, discount
  • referral_program, featured_product

Schema support — Hỗ trợ kỹ thuật

Hệ thống ticket, tin nhắn, trạng thái và feedback cho support.

Ví dụ bảng:

  • ticket, ticket_message, ticket_status
  • agent, feedback

Schema analytics — Metrics và hành vi

Theo dõi session, hành động user, conversion và metrics.

Ví dụ bảng:

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

Schema admin — Quản trị và điều khiển

Bảng admin, role, audit log và cài đặt hệ thống.

Ví dụ bảng:

  • admin, admin_role
  • audit_log, setting, api_token

Schema content — Trang tĩnh và block

Nội dung cho CMS: trang, menu, bản dịch và version.

Ví dụ bảng:

  • page, block, menu, translation, version

Schema ref — Tham chiếu và meta-table

Loại, trạng thái, quốc gia, lý do hoàn tiền v.v.

Ví dụ bảng:

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

Tạo bảng

Để đỡ mất công cho các bạn, mình sẽ đưa sẵn script tạo tất cả bảng database.

Bạn chỉ cần tải SQL script về và chạy thôi.

  1. Tạo một cơ sở dữ liệu trống trong PostgreSQL.
  2. Tải xuống lược đồ.
  3. Nhập cấu trúc cơ sở dữ liệu:
psql -U postgres -d marketplace_db < init_schema.sql

Tải dữ liệu

Cũng là dữ liệu cho tất cả các bảng.

Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION