Relacja wiele-do-wielu
Słownik kwalifikacji INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych
Relacja wiele-do-wielu oznacza, że wiele rekordów z jednej tabeli może być powiązanych z wieloma rekordami z drugiej tabeli. W zapisie spotykanym w modelowaniu baz danych oznacza się ją jako n..m.
Przykład
Typowy przykład to relacja między tabelami uczniowie i kursy:
- jeden uczeń może uczestniczyć w wielu kursach,
- jeden kurs może mieć wielu uczniów.
Nie da się poprawnie zapisać takiej relacji przez dodanie jednego klucza obcego tylko do jednej z tych tabel, ponieważ powstałyby powtarzające się dane albo trudności z przechowywaniem wielu wartości w jednym polu.
Tabela pośrednia
Relację wiele-do-wielu rozwiązuje się przez utworzenie tabeli pośredniej, nazywanej też tabelą łączącą lub asocjacyjną. Tabela ta zawiera klucze obce wskazujące na klucze główne obu tabel.
Przykład struktury:
CREATE TABLE uczniowie_kursy (
id_ucznia INT,
id_kursu INT,
PRIMARY KEY (id_ucznia, id_kursu),
FOREIGN KEY (id_ucznia) REFERENCES uczniowie(id),
FOREIGN KEY (id_kursu) REFERENCES kursy(id)
);
Ważne na egzaminie
Jeżeli w pytaniu pojawia się informacja o konieczności utworzenia tabeli pośredniej łączącej klucze główne obu tabel, chodzi o relację n..m, czyli wiele-do-wielu.
Relacje 1..1, 1..n oraz n..1 zwykle realizuje się za pomocą klucza obcego w jednej z tabel, bez dodatkowej tabeli pośredniej.