Bon, vu que tu sais déjà tout et que tu gères, il est temps de tester tes skills sur un vrai projet. En général, les bases de données des vrais projets se divisent en :
- petites – jusqu’à 100 tables
- moyennes – 100 à 1000 tables
- grosses – à partir de 1000 tables.
Sans expérience, c’est chaud d’imaginer pourquoi il faudrait 100+ tables. Donc aujourd’hui, je te file cette chance :)
Je vais te filer une base de données relationnelle réaliste pour une plateforme e-commerce (Marketplace). La base est découpée en schémas, chacun gérant un domaine métier précis : utilisateurs, produits, commandes, logistique, marketing, support, etc.
Le projet contient 109 tables, réparties sur 11 schémas. Chaque table a des foreign keys et est prête à être étendue avec des référentiels et des tables système.
Structure de la base de données
Schéma user — Utilisateurs et activité
Le schéma user contient les tables des comptes, profils, infos de contact, logs de connexion, avis et liens sociaux.
Exemples de tables :
account— données d’inscriptionprofile— infos persoreview,comment— avis et commentaires
Schéma product — Produits et catalogue
Le schéma product contient les descriptions des produits, leurs variantes, attributs, images, statuts et historique des modifs.
Exemples de tables :
product,variant— produits et modifsattribute,tag— caractéristiques et tagssupplier,composition— fabricants et composition
Schéma order — Commandes et paniers
Contient le système de création et suivi des commandes, statuts, retours et paiements.
Exemples de tables :
order,order_itemstatus_log,return,cancellationinvoice,discount
Schéma logistics — Entrepôts, livraison, routes
Gestion des stocks, mouvements, livraisons et itinéraires.
Exemples de tables :
warehouse,inventory,transfershipping_method,packagedriver,carrier,route
Schéma payment — Paiements et transactions
Stocke les infos sur les systèmes de paiement, transactions, wallets et remboursements.
Exemples de tables :
payment,transaction,refundwallet,wallet_transactiongateway,method
Schéma marketing — Promos et pub
Contient les tables des codes promo, bannières, programmes de parrainage et produits mis en avant.
Exemples de tables :
campaign,promo_code,discountreferral_program,featured_product
Schéma support — Support technique
Système de tickets, messages, statuts et feedback sur le support.
Exemples de tables :
ticket,ticket_message,ticket_statusagent,feedback
Schéma analytics — Métriques et comportement
Suivi des sessions, actions utilisateurs, conversions et métriques.
Exemples de tables :
event,session,click,page_viewgoal,metric_snapshot
Schéma admin — Admin et gestion
Tables des admins, rôles, logs d’audit et paramètres système.
Exemples de tables :
admin,admin_roleaudit_log,setting,api_token
Schéma content — Pages statiques et blocs
Contenu pour CMS : pages, menus, traductions et versions.
Exemples de tables :
page,block,menu,translation,version
Schéma ref — Référentiels et meta-tables
Types, statuts, pays, raisons de retour, etc.
Exemples de tables :
country,currency,status,payment_statusrefund_reason,inventory_change_reason
Création des tables
Pour te simplifier la vie, je vais te filer des scripts tout prêts pour créer toutes les tables de la base.
Tu n’auras qu’à télécharger le script SQL avec le code et le lancer.
- Créez une base de données vide dans PostgreSQL.
- Téléchargez le schéma.
- Importez la structure de la base de données :
psql -U postgres -d marketplace_db < init_schema.sql
Chargement des données
Aussi les données pour toutes les tables.
GO TO FULL VERSION