Co to jest tabela słownikowa w SQL?
Tabela słownikowa to tabela przechowująca dozwolone wartości dla wybranego pola w innej tabeli. Stosuje się ją np. dla kolorów, kategorii, statusów, typów produktów czy stanowisk.
Zamiast wpisywać w tabeli samochody tekst typu czerwony, czarny, biały, można utworzyć tabelę lakier, a w tabeli samochody zapisywać identyfikator wybranego lakieru.
Przykład
CREATE TABLE lakier (
lakierId INT PRIMARY KEY,
nazwa VARCHAR(30) NOT NULL
);
CREATE TABLE samochody (
id INT PRIMARY KEY,
marka VARCHAR(50),
kolor INT,
FOREIGN KEY (kolor) REFERENCES lakier(lakierId)
);
W tym przykładzie pole samochody.kolor może zawierać tylko takie wartości, które istnieją w kolumnie lakier.lakierId.
Po co stosuje się tabele słownikowe?
- ograniczają wartości do poprawnego zestawu,
- zapobiegają literówkom i niespójnym zapisom, np.
czarny,czarna,black, - ułatwiają zmianę nazw wartości,
- wspierają integralność referencyjną,
- pomagają normalizować bazę danych.
Ważne na egzaminie
Relację między tabelą główną a słownikową najczęściej ustanawia się za pomocą klucza obcego:
ALTER TABLE samochody
ADD FOREIGN KEY (kolor) REFERENCES lakier(lakierId);
Kolumna po lewej stronie, np. kolor, znajduje się w tabeli zależnej. Kolumna po prawej stronie, np. lakierId, musi istnieć w tabeli słownikowej i zwykle jest kluczem głównym.