Relacja wiele do wielu
Słownik kwalifikacji INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych
Relacja wiele do wielu oznaczana często jako n..n występuje wtedy, gdy jeden rekord z pierwszej tabeli może być powiązany z wieloma rekordami z drugiej tabeli i odwrotnie.
Przykład: jeden uczeń może uczestniczyć w wielu kursach, a jeden kurs może mieć wielu uczniów.
Dlaczego potrzebna jest tabela pośrednicząca?
Relacji wiele do wielu nie zapisuje się bezpośrednio przez pojedynczy klucz obcy w jednej z tabel. Zamiast tego tworzy się tabelę pośredniczącą nazywaną też tabelą łącznikową.
Tabela pośrednicząca przechowuje zwykle:
- klucz główny pierwszej tabeli jako klucz obcy,
- klucz główny drugiej tabeli jako klucz obcy,
- opcjonalnie dodatkowe informacje o powiązaniu.
Przykład
CREATE TABLE uczniowie (
id_ucznia INT PRIMARY KEY,
imie VARCHAR(50)
);
CREATE TABLE kursy (
id_kursu INT PRIMARY KEY,
nazwa VARCHAR(100)
);
CREATE TABLE uczniowie_kursy (
id_ucznia INT,
id_kursu INT,
PRIMARY KEY (id_ucznia, id_kursu),
FOREIGN KEY (id_ucznia) REFERENCES uczniowie(id_ucznia),
FOREIGN KEY (id_kursu) REFERENCES kursy(id_kursu)
);
Tabela uczniowie_kursy łączy rekordy z tabel uczniowie i kursy.
Zapamiętaj na egzamin
Jeżeli pytanie dotyczy relacji wymagającej utworzenia tabeli pośredniczącej łączącej klucze główne obu tabel, poprawna odpowiedź to relacja wiele do wielu, czyli n..n.