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 rejestracyjneprofile— dane osobistereview,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 modyfikacjeattribute,tag— cechy i tagisupplier,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_itemstatus_log,return,cancellationinvoice,discount
Schemat logistics — Magazyny, dostawa, trasy
Zarządzanie stanami magazynowymi, przesunięciami, dostawami i trasami.
Przykłady tabel:
warehouse,inventory,transfershipping_method,packagedriver,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,refundwallet,wallet_transactiongateway,method
Schemat marketing — Promocje i reklama
Zawiera tabele z kodami promocyjnymi, banerami, programami poleceń i wyróżnionymi produktami.
Przykłady tabel:
campaign,promo_code,discountreferral_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_statusagent,feedback
Schemat analytics — Metryki i zachowania
Śledzenie sesji, działań użytkowników, konwersji i metryk.
Przykłady tabel:
event,session,click,page_viewgoal,metric_snapshot
Schemat admin — Administracja i zarządzanie
Tabele administratorów, ról, logów audytu i ustawień systemowych.
Przykłady tabel:
admin,admin_roleaudit_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_statusrefund_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.
- Utwórz pustą bazę danych w PostgreSQL.
- Pobierz schemat.
- Zaimportuj strukturę bazy danych:
psql -U postgres -d marketplace_db < init_schema.sql
Ładowanie danych
Również dane dla wszystkich tabel.
GO TO FULL VERSION