CodeGym /Cours /SQL SELF /Architecture de la base de données Marketplace

Architecture de la base de données Marketplace

SQL SELF
Niveau 61 , Leçon 0
Disponible

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’inscription
  • profile — infos perso
  • review, 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 modifs
  • attribute, tag — caractéristiques et tags
  • supplier, 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_item
  • status_log, return, cancellation
  • invoice, discount

Schéma logistics — Entrepôts, livraison, routes

Gestion des stocks, mouvements, livraisons et itinéraires.

Exemples de tables :

  • warehouse, inventory, transfer
  • shipping_method, package
  • driver, 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, refund
  • wallet, wallet_transaction
  • gateway, 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, discount
  • referral_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_status
  • agent, feedback

Schéma analytics — Métriques et comportement

Suivi des sessions, actions utilisateurs, conversions et métriques.

Exemples de tables :

  • event, session, click, page_view
  • goal, 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_role
  • audit_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_status
  • refund_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.

  1. Créez une base de données vide dans PostgreSQL.
  2. Téléchargez le schéma.
  3. 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.

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