Nasza Biblioteka to sieć odsyłaczy. Zwój książki nie powtarza całego życiorysu autora - zamiast tego wskazuje sygnaturę zwoju z opisem twórcy. W MySQL takim odsyłaczem jest klucz obcy (foreign key).
Kolumna
autor_id w tabeli ksiazki przechowuje id autora z tabeli autorzy. Klucz obcy formalizuje ten związek i każe Bibliotece pilnować, by każdy autor_id wskazywał na istniejącego autora.1ALTER TABLE ksiazki ADD FOREIGN KEY (autor_id) REFERENCES autorzy(id);Czytamy: "Kolumna autor_id w ksiazki odwołuje się do kolumny id w autorzy".
Dzięki kluczowi obcemu baza nie pozwoli:
autor_id nie istnieje w autorzy,To integralność referencyjna - gwarancja, że odsyłacze w katalogu nigdy nie prowadzą donikąd.
Możesz określić, co stanie się z książkami, gdy znika ich autor:
1ALTER TABLE ksiazki
2ADD FOREIGN KEY (autor_id) REFERENCES autorzy(id)
3ON DELETE CASCADE;autor_id na NULL (książka zostaje, lecz bez przypisanego autora).Wybór zależy od tego, jak chcesz dbać o porządek w Bibliotece. Klucze obce to strażnicy spójności - bez nich katalog szybko zapełniłby się martwymi odsyłaczami.