Rozdział 12. ♦ Tworzenie bazy w praktyce 345
CREATE TABLE Zamówienie(
'Id' INTEGER AUTO INCREMENT PRIMARY KEY. 'Klientld' INTEGER.
'Data wprowadzenia" DATETIME NOT NULL. "Data realizacji' DATĘ.
'Status' INTEGER
Tabela Książki Zamówieni a, łącząca wpisy z tabel Książki i Zamówienia, będzie zawierała cztery kolumny:
♦ Książkald — typu INTEGER, zawierającą identyfikatory książek;
♦ Zamówienield — typu INTEGER, zawierającą identyfikatory zamówień;
♦ Ilość — typu INTEGER, określającą, ile sztuk danej książki zawiera dane zamówienie;
♦ Cena — typu DECIMAL, określającą cenę danej książki w danym zamówieniu.
Pole Cena jest niezbędne, gdyż bieżąca cena książki może się zmieniać w czasie, nie może natomiast być modyfikowana w już złożonych zamówieniach. W tej tabeli, podobnie jak miało to miejsce w przypadku tabeli Książki Autorzy, nie musimy wprowadzać dodatkowego pola Id, jako że dwie pierwsze kolumny jednoznacznie identyfikują każdy rekord i tworzą w rzeczywistości klucz podstawowy. Instrukcja tworząca tabelę KsiazkiZamowienia będzie więc miała postać:
CREATE TABLE KsiazkiZamowieniat 'Książkald' INTEGER NOT NULL.
'Zamówienield' INTEGER NOT NULL.
'Ilość' INTEGER NOT NULL,
'Cena' DECIMAL(5.2) NOT NULL.
PRIMARY KEYCKsiążkald'. 'Zamówienield')
Tabela Opinie będzie przechowywała tekstowe opinie (recenzje) klientów dotyczące książek oraz oceny książek. W związku z tym będzie ona miała następujące kolumny:
♦ Id — typu INTEGER, przechowującą unikalny identyfikator opinii;
♦ Książkald — typu INTEGER, przechowującą identyfikator książki, której dotyczy dana opinia;
♦ Klientld — typu INTEGER, przechowującą identyfikator klienta, który jest autorem opinii;
♦ Ocena — typu wyliczeniowego ENUM, przechowującą ocenę książki dokonaną przez klienta, w szkolnej skali od 1 do 6;
♦ Opinia —typu TEXT, przechowującą tekst opinii.
Tabelę Opi nie utworzymy za pomocą instrukcji:
CREATE TABLE Opiniet 'Id' INTEGER AUTO_INCREMENT PRIMARY KEY.
'Książkald' INTEGER NOT NULL.