Sprawdź zawód
Lekcje kursu · Praca krok po kroku

Projektant baz danych — Praca krok po kroku

Dwa wiersze dla tego samego produktu w Z-24

Praca krok po kroku · Lekcja 3 z 6

Zaprojektuj klucz pozycji

Jeśli numer pozycji jest unikalny w ramach zamówienia, użyj pary numer zamówienia i numer pozycji.

Tok pracy w tej lekcji
  1. Co zrobić najpierwZamówienie
  2. Co zrobić dalejNumer pozycji
  3. Jak zakończyćKlucz

Przykład z pracy

K-8 jest w pozycjach 1 i 2.

Ćwiczenie praktyczne

Zaproponuj klucze dla obu wierszy.

Dwa wiersze dla tego samego produktu w Z-24

Podejmij decyzję

Wróć do notatki z początku sprawy. Zapisz pierwsze działanie i wyjaśnij, jak pomoże rozwiązać sytuację.

Pokaż przykładową reakcję

Zapisuję pozycje z osobnymi numerami i cenami zakupu Zachowujesz oba wiersze i ich odrębne rabaty.

Zapisuję pozycje z osobnymi numerami i cenami zakupu
Zachowujesz oba wiersze i ich odrębne rabaty.
Scalam oba wiersze pod kodem produktu
Dane o rabatach i pozycjach stają się niejednoznaczne.
Zapisuję tylko aktualną cenę w katalogu
Późniejsza zmiana ceny nie odtworzy warunków zamówienia.
Sprawdź się — opcjonalne pytanie

Czym różnią się klucze?

  • Numerem pozycji w tym samym zamówieniu
  • Kodem produktu
  • Nazwą katalogu
Pokaż odpowiedź i wyjaśnienie

Numerem pozycji w tym samym zamówieniu. Osobne klucze utrzymują oba wiersze.

Praca krok po kroku · Lekcja 4 z 6

Zapisz cenę historyczną

Wyjaśnij zespołowi, gdzie przechowujesz bieżącą cenę produktu i cenę uzgodnioną przy zakupie.

Tok pracy w tej lekcji
  1. Co zrobić najpierwKatalog
  2. Co zrobić dalejPozycja
  3. Jak zakończyćWarunki

Przykład z pracy

W dniu zakupu dwie pozycje mają odmienne rabaty.

Ćwiczenie praktyczne

Przypisz po dwa pola do produktu i pozycji.

Sprawdź się — opcjonalne pytanie

Co odtworzy warunki zakupu?

  • Cena wyświetlana dziś w katalogu
  • Cena lub wartości zapisane przy pozycji zakupu
  • Kolor etykiety
Pokaż odpowiedź i wyjaśnienie

Cena lub wartości zapisane przy pozycji zakupu. Późniejsza zmiana cennika nie zmienia zapisanych warunków.

Dwie pozycje tego samego produktu w SQL

ZamówieniePozycjaProduktCena zakupu
Z-241K-8210,00 zł
Z-242K-8185,00 zł

Identyfikator zamówienia wskazuje wspólny nagłówek. Pozycje różnią się numerem i mogą mieć własną cenę. Klucz obcy łączy je z istniejącym zamówieniem.

Klucze tabeli zamówień i pozycji

CREATE TABLE zamowienia (nr text PRIMARY KEY);

CREATE TABLE pozycje (
  nr_zamowienia text REFERENCES zamowienia(nr),
  nr_pozycji integer,
  kod_produktu text NOT NULL,
  cena_zakupu numeric(10, 2) NOT NULL,
  PRIMARY KEY (nr_zamowienia, nr_pozycji)
);

Sprawdź się w tej sytuacji

Zaproponuj odniesienie ze zwrotu do pozycji 2 i wyjaśnij, co stanie się po podaniu nieznanego numeru zamówienia.

PostgreSQL · klucze i integralność referencyjna