CodeGym /Corsi /SQL SELF /Marketplace Database Architecture

Marketplace Database Architecture

SQL SELF
Livello 61, Lezione 0
Disponibile

Visto che ormai sai già tutto e te la cavi, è arrivato il momento di mettere alla prova le tue skill su un progetto reale. Di solito i database dei progetti veri si dividono in:

  • piccoli - fino a 100 tabelle
  • medi - da 100 a 1000 tabelle
  • grandi - da 1000 tabelle in su.

Se non hai esperienza, è difficile immaginare perché servano più di 100 tabelle. Quindi oggi ti do questa possibilità :)

Ti passo una base dati relazionale realistica per una piattaforma e-commerce (Marketplace). Il database è diviso in schemi, ognuno dei quali si occupa di un dominio specifico: utenti, prodotti, ordini, logistica, marketing, supporto ecc.

Il progetto è composto da 109 tabelle, suddivise in 11 schemi. Ogni tabella ha le sue foreign key e può essere estesa facilmente con dizionari e tabelle di sistema.

Struttura del database

Schema user — Utenti e attività

Lo schema user contiene le tabelle degli account, profili, info di contatto, log di accesso, recensioni e connessioni social.

Esempi di tabelle:

  • account — dati di registrazione
  • profile — info personali
  • review, comment — recensioni e commenti

Schema product — Prodotti e catalogo

Lo schema product contiene descrizioni dei prodotti, varianti, attributi, immagini, status e cronologia delle modifiche.

Esempi di tabelle:

  • product, variant — prodotti e modifiche
  • attribute, tag — caratteristiche e tag
  • supplier, composition — produttori e composizione

Schema order — Ordini e carrelli

Contiene il meccanismo per creare e tracciare ordini, status, resi e pagamenti.

Esempi di tabelle:

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

Schema logistics — Magazzini, spedizioni, percorsi

Gestione delle scorte di magazzino, movimenti, spedizioni e percorsi.

Esempi di tabelle:

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

Schema payment — Pagamenti e transazioni

Contiene info sui sistemi di pagamento, transazioni, wallet e rimborsi.

Esempi di tabelle:

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

Schema marketing — Promo e pubblicità

Contiene tabelle per codici promo, banner, programmi referral e prodotti in evidenza.

Esempi di tabelle:

  • campaign, promo_code, discount
  • referral_program, featured_product

Schema support — Supporto tecnico

Sistema di ticket, messaggi, status e feedback sul supporto.

Esempi di tabelle:

  • ticket, ticket_message, ticket_status
  • agent, feedback

Schema analytics — Metriche e comportamento

Tracciamento di sessioni, azioni utenti, conversioni e metriche.

Esempi di tabelle:

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

Schema admin — Amministrazione e gestione

Tabelle di admin, ruoli, log di audit e impostazioni di sistema.

Esempi di tabelle:

  • admin, admin_role
  • audit_log, setting, api_token

Schema content — Pagine statiche e blocchi

Contenuti per CMS: pagine, menu, traduzioni e versioni.

Esempi di tabelle:

  • page, block, menu, translation, version

Schema ref — Dizionari e meta-tabelle

Tipi, status, paesi, motivi di reso e altro.

Esempi di tabelle:

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

Creazione delle tabelle

Per renderti la vita più facile, ti passo gli script già pronti per creare tutte le tabelle del database.

Ti basta solo scaricare lo script SQL e lanciarlo.

  1. Crea un database vuoto in PostgreSQL.
  2. Scarica lo schema.
  3. Importa la struttura del database:
psql -U postgres -d marketplace_db < init_schema.sql

Caricamento dati

Anche i dati per tutte le tabelle.

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