Modellierung
Normalisieren oder denormalisieren?
Jede Tatsache einmal speichern, wo Daten geschrieben werden; sie kopieren, wo Daten überwiegend gelesen werden.
Normalisierte Tabellen (3NF) vermeiden Änderungs-, Einfüge- und Löschanomalien: die Tabellen der Anwendung. Breite, denormalisierte Tabellen sind für die Analyse in Ordnung, wenn sie aus der normalisierten Quelle neu aufgebaut werden. Views und materialisierte Views sind ein Mittelweg.
-- 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_email | customer_city |
|---|---|
| lea@example.com | Lyon |
| tom@example.com | Paris |