Normaliser une table plate

Senior SQLSQL40 min80 XP

Un ancien outil stocke les ventes dans une seule table ventes_plates (client, ville, produit, prix catalogue, quantité, date) : chaque changement de ville d'un client oblige à modifier des dizaines de lignes, et des incohérences apparaissent.

Construisez un modèle normalisé (3FN) et migrez les données :

  1. clients_n (id INTEGER PRIMARY KEY, nom TEXT NOT NULL UNIQUE, ville TEXT)
  2. produits_n (id INTEGER PRIMARY KEY, nom TEXT NOT NULL UNIQUE, prix REAL NOT NULL)
  3. ventes_n (id INTEGER PRIMARY KEY, client_id INTEGER NOT NULL REFERENCES clients_n(id), produit_id INTEGER NOT NULL REFERENCES produits_n(id), quantite INTEGER NOT NULL, date_vente TEXT NOT NULL)
  4. Alimentez-les avec INSERT … SELECT depuis ventes_plates (la ville à retenir pour un client est celle de sa vente la plus récente)
  5. Vérifiez qu'une jointure des trois tables redonne le même CA total que la table plate → answer ca <montant>

Contenu Premium+

Ce contenu est inclus dans l'offre Premium+. Le titre et le résumé restent visibles pour vous aider à choisir.

Tâches

  1. Tables normalisées avec clés étrangères
  2. Données migrées sans doublon
  3. CA identique après migration