Tabela pośrednia w SQL

Słownik kwalifikacji INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych

Opublikowano: Zaktualizowano:

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.