Rozdział 12. ♦ Tworzenie bazy w praktyce 341
Relacja między klientami a zamówieniami to jeden do wielu — jeden klient mógł złożyć wiele zamówień, ale konkretne zamówienie może być przypisane tylko do jednego klienta.
Ostatnia relacja występuje między książkami a zamówieniami —jest ona typu wiele--do-wielu. Jedna książka może być bowiem elementem wielu zamówień, natomiast jedno zamówienie może opiewać na wiele książek. Oczywiście do odzwierciedlenia tej relacji niezbędna będzie dodatkowa tabela pośrednicząca. Taka tabela będzie też newralgicznym punktem całej bazy. Przy tej konstrukcji, jeśli nasza księgarnia będzie zbierała dużo zamówień na wiele towarów, tabela ta będzie zawierała ogromną liczbę wierszy.
Przyswoiwszy sobie powyższe wiadomości, spróbujmy narysować diagram tabel zawierający wszystkie niezbędne tabele, które będą umieszczone w bazie. Został on przedstawiony na rysunku 12.4. Linią przerywaną został zaznaczony techniczny związek między tabelami AutorzyPseudonimy i Autorzy. Tabela AutorzyPseudonimy posłuży do odzwierciedlania powiązań pomiędzy wierszami tabeli Autorzy. Możemy teraz przystąpić do pracy nad budową poszczególnych tabel. W następnej kolejności zajmiemy się tworzeniem indeksów i więzów integralności.
Rysunek 12.4.
Ostateczny
diagram tabel
Tabele, które musimy utworzyć, przedstawiono na rysunku 12.4. Zrezygnujemy jednak ze stosowania polskich liter, w celu zapewnienia maksymalnej uniwersalności kodu (jak pamiętamy z rozdziału 10., w nazwach tabel można używać znaków narodowych, o ile systemem plików systemu operacyjnego, na którym został uruchomiony serwer, dopuszcza taką możliwość). Polskie znaki diakrytyczne zastosujemy natomiast w nazwach kolumn, nazwy te będą musiały być zatem ujmowane w znaki lewego apostrofu.
Zacznijmy od tabeli Książki. Wiemy, jakie dane ma ona przechowywać bezpośrednio, pozostaje nam zidentyfikować klucze obce. W tym wypadku będzie tylko jeden, pochodzący z tabeli Wydawnictwa. Tabela Książki będzie zatem miała następujące pola: