SQL Dojo Bêta
Modélisation

Normaliser ou dénormaliser ?

Stocker chaque fait une fois là où l'on écrit ; le copier là où l'on lit surtout.

Les tables normalisées (3NF) évitent les anomalies de mise à jour, d'insertion et de suppression : ce sont les tables de l'application. Les tables larges, dénormalisées, conviennent à l'analytique quand elles sont reconstruites depuis la source normalisée. Vues et vues matérialisées sont une voie médiane.

-- A flat export repeats the customer on every order: the customer is an entity of its own.
WITH flat_orders(order_id, customer_email, customer_city) AS (VALUES
  (1, 'lea@example.com', 'Lyon'), (2, 'lea@example.com', 'Lyon'),
  (3, 'tom@example.com', 'Paris'), (4, 'lea@example.com', 'Lyon'))
SELECT DISTINCT customer_email, customer_city
FROM flat_orders
ORDER BY customer_email;
customer_emailcustomer_city
lea@example.comLyon
tom@example.comParis
L’essayer en Randori