CodeGym /Kursy /SQL SELF /Marketplace Database Architecture

Marketplace Database Architecture

SQL SELF
Poziom 61, Lekcja 0
Dostępny

Skoro już wszystko wiesz i umiesz, czas sprawdzić swoje umiejętności na prawdziwym projekcie. Zazwyczaj bazy danych w realnych projektach dzielą się na:

  • małe - do 100 tabel
  • średnie - 100-1000 tabel
  • duże - od 1000 tabel.

Bez doświadczenia ciężko sobie wyobrazić po co komu 100+ tabel. Dlatego dziś dam Ci taką możliwość :)

Dostaniesz ode mnie realistyczną relacyjną bazę danych dla platformy e-commerce (Marketplace). Baza jest podzielona na schematy, z których każdy odpowiada za konkretną domenę: użytkownicy, produkty, zamówienia, logistyka, marketing, wsparcie itd.

Projekt składa się ze 109 tabel, rozbitych na 11 schematów. Każda tabela ma klucze obce i jest przygotowana na rozbudowę przez słowniki i tabele systemowe.

Struktura bazy danych

Schemat user — Użytkownicy i aktywność

Schemat user zawiera tabele kont, profili, danych kontaktowych, logów logowania, opinii i powiązań społecznościowych.

Przykłady tabel:

  • account — dane rejestracyjne
  • profile — dane osobiste
  • review, comment — opinie i komentarze

Schemat product — Produkty i katalog

Schemat product zawiera opisy produktów, ich wariantów, atrybutów, zdjęć, statusów i historii zmian.

Przykłady tabel:

  • product, variant — produkty i modyfikacje
  • attribute, tag — cechy i tagi
  • supplier, composition — producenci i skład

Schemat order — Zamówienia i koszyki

Zawiera mechanizmy składania i śledzenia zamówień, statusów, zwrotów i płatności.

Przykłady tabel:

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

Schemat logistics — Magazyny, dostawa, trasy

Zarządzanie stanami magazynowymi, przesunięciami, dostawami i trasami.

Przykłady tabel:

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

Schemat payment — Płatności i transakcje

Przechowuje info o systemach płatności, transakcjach, portfelach i zwrotach.

Przykłady tabel:

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

Schemat marketing — Promocje i reklama

Zawiera tabele z kodami promocyjnymi, banerami, programami poleceń i wyróżnionymi produktami.

Przykłady tabel:

  • campaign, promo_code, discount
  • referral_program, featured_product

Schemat support — Wsparcie techniczne

System ticketów, wiadomości, statusów i opinii o wsparciu.

Przykłady tabel:

  • ticket, ticket_message, ticket_status
  • agent, feedback

Schemat analytics — Metryki i zachowania

Śledzenie sesji, działań użytkowników, konwersji i metryk.

Przykłady tabel:

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

Schemat admin — Administracja i zarządzanie

Tabele administratorów, ról, logów audytu i ustawień systemowych.

Przykłady tabel:

  • admin, admin_role
  • audit_log, setting, api_token

Schemat content — Strony statyczne i bloki

Content dla CMS: strony, menu, tłumaczenia i wersje.

Przykłady tabel:

  • page, block, menu, translation, version

Schemat ref — Słowniki i meta-tabele

Typy, statusy, kraje, powody zwrotów itd.

Przykłady tabel:

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

Tworzenie tabel

Żeby ułatwić Ci życie, dam Ci gotowe skrypty do stworzenia wszystkich tabel bazy danych.

Musisz tylko pobrać SQL-skrypt z kodem i odpalić go.

  1. Utwórz pustą bazę danych w PostgreSQL.
  2. Pobierz schemat.
  3. Zaimportuj strukturę bazy danych:
psql -U postgres -d marketplace_db < init_schema.sql

Ładowanie danych

Również dane dla wszystkich tabel.

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