SQLPytanie 11 z 14
Model relacyjny i normalizacja
Najpierw odpowiedz na głos lub w myślach, potem porównaj.
Odpowiedź
Normalizacja ogranicza powielanie faktów i anomalie aktualizacji. W modelu sklepu wydzielam klientów, zamówienia, produkty i pozycje zamówień z kluczami obcymi.
customers(id, name)
orders(id, customer_id)
products(id, name, current_price)
order_items(order_id, product_id, quantity, unit_price)Doprecyzowanie: unit_price w pozycji zamówienia to cena historyczna, a nie błędny duplikat bieżącej ceny produktu.
Pułapka: nie zapisuję listy identyfikatorów jako tekstu oddzielonego przecinkami. Denormalizację wybieram świadomie dla konkretnego pomiaru i określam, jak utrzymam spójność.
Relacja w komentarzach dotyczy zadania projektowego; pokazany sklep to własny przykład do ćwiczenia.
Jak poszło? Bądź szczery — „Jeszcze nie” dodaje pytanie do powtórki.