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 registrazioneprofile— info personalireview,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 modificheattribute,tag— caratteristiche e tagsupplier,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_itemstatus_log,return,cancellationinvoice,discount
Schema logistics — Magazzini, spedizioni, percorsi
Gestione delle scorte di magazzino, movimenti, spedizioni e percorsi.
Esempi di tabelle:
warehouse,inventory,transfershipping_method,packagedriver,carrier,route
Schema payment — Pagamenti e transazioni
Contiene info sui sistemi di pagamento, transazioni, wallet e rimborsi.
Esempi di tabelle:
payment,transaction,refundwallet,wallet_transactiongateway,method
Schema marketing — Promo e pubblicità
Contiene tabelle per codici promo, banner, programmi referral e prodotti in evidenza.
Esempi di tabelle:
campaign,promo_code,discountreferral_program,featured_product
Schema support — Supporto tecnico
Sistema di ticket, messaggi, status e feedback sul supporto.
Esempi di tabelle:
ticket,ticket_message,ticket_statusagent,feedback
Schema analytics — Metriche e comportamento
Tracciamento di sessioni, azioni utenti, conversioni e metriche.
Esempi di tabelle:
event,session,click,page_viewgoal,metric_snapshot
Schema admin — Amministrazione e gestione
Tabelle di admin, ruoli, log di audit e impostazioni di sistema.
Esempi di tabelle:
admin,admin_roleaudit_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_statusrefund_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.
- Crea un database vuoto in PostgreSQL.
- Scarica lo schema.
- Importa la struttura del database:
psql -U postgres -d marketplace_db < init_schema.sql
Caricamento dati
Anche i dati per tutte le tabelle.
GO TO FULL VERSION