Czym jest tabela pośrednia?
Tabela pośrednia (łącznikowa, asocjacyjna) to dodatkowa tabela używana do realizacji relacji wiele do wielu między dwiema tabelami.
Jej główne zadanie to przechowywanie par identyfikatorów rekordów, które są ze sobą powiązane.
Budowa tabeli pośredniej
Najczęściej zawiera:
- klucz obcy do pierwszej tabeli,
- klucz obcy do drugiej tabeli,
- opcjonalnie dodatkowe pola opisujące relację.
Przykład:
- tabela autorzy
- tabela ksiazki
- tabela pośrednia autorzy_ksiazki
CREATE TABLE autorzy_ksiazki (
id_autora INT,
id_ksiazki INT,
PRIMARY KEY (id_autora, id_ksiazki),
FOREIGN KEY (id_autora) REFERENCES autorzy(id_autora),
FOREIGN KEY (id_ksiazki) REFERENCES ksiazki(id_ksiazki)
);
Klucz główny w tabeli pośredniej
Bardzo często stosuje się klucz główny złożony z obu kluczy obcych, np.:
- (id_autora, id_ksiazki)
Dzięki temu:
- ta sama para nie zostanie wpisana dwa razy,
- relacja jest jednoznaczna,
- łatwiej zachować spójność danych.
Można też dodać osobne pole id, ale w prostych zadaniach egzaminacyjnych zwykle wystarcza klucz złożony.
Kiedy tabela pośrednia jest konieczna?
Gdy:
- jeden rekord z tabeli A łączy się z wieloma rekordami z tabeli B,
- i odwrotnie.
Bez tabeli pośredniej trzeba byłoby powielać dane albo zapisywać wiele wartości w jednym polu, co łamie zasady projektowania relacyjnych baz danych.
Najważniejsze do zapamiętania
Tabela pośrednia:
- realizuje relację M:N,
- zawiera zwykle dwa klucze obce,
- może mieć klucz główny złożony,
- zapobiega duplikacji i poprawia organizację danych.