relacja jeden-do-wielu relacja ta zachodzi, gdy pojedynczemu rekordowi z jednej tabeli odpowiada jeden lub więcej rekordów z drugiej tabeli.
□ Ksiazka
ID INT
Tytuł VARCHAR(45) OLiczbaStr INT > Wydawnictwo_ID INT
MA
JEST WYDANA
Wydawnictwo |
▼ |
ID INT | |
-> Nazwa VARCHAR(45) | |
O Adres VARCHAR(45) | |
► |
Rysunek 2: Przykład relacji jeden-do-wielu. (Rys. stworzony dzięki oprogramowaniu MySQL Workbanch)
relacja wiele-do-wielu - Gdy wielu rekordom z pierwszej tabeli odpowiada wiele rekordów z drugiej tabeli. Taka relacja wymiaga normalizacji, która polega na dodaniu nowej tabeli. Przykład znormalizowanej relacji wiele-do-wielu pokazano na rys. 3.
□ Student ▼ | ||||
ID INT O Imię VARCHAR(45) - Nazwisko INT |
□ zapisy ▼ t Student_ID INT t PrzedmiotJD INT DataZapisu DATĘ ► |
□ Przedmiot ID INT O Nazwa VARCHAR(45) <> Prowadzący VARCHAR(45) ► | ||
► |
Rysunek 3: Przykład znormalizowanej relacji wiele-do-wielu. (Rys. stworzony dzięki oprogramowaniu MySQL Workbanch)
Na rys. 2 pokazano przykład relacji jeden-do-wielu pomiędzy tabelami książka i wydawnictwo. W tej relacji wydawnictwo może wydać wiele książek. Patrząc od strony książki relacja jest następująca: wiele książek może być wydanych przez jedno wydawnictwo.
W praktyce, relacja jeden-do-wielu jest tworzona poprzez dodanie dodatkowej kolumny w tabeli, która w relacji występuje po stronie „wiele”. Kolumna ta ma własność klucza obcego (FK, foreign key) tj. przetrzymuje wartość klucza głównego (PK, Primary key) odpowiedniego rekordu innej tabeli.
Pierwszym krokiem prowadzącym do utworzenia relacji widocznej na rys. 2 jest wykonanie zapytania SQL tworzącego tabelę Wydawnictwo