Vyskúšajte si to!
Čo je vzťah typu many-to-many?
Vzťahy typu Many-to-many sú najčastejšie používané vzťahy tabuliek. Poskytujú dôležité informácie, napríklad ktorých zákazníkov kontaktovali predajcovia a ktoré produkty sú v objednávkach zákazníkov.
Vzťah typu many-to-many existuje, ak jedna alebo viaceré položky v jednej tabuľke môžu mať vzťah k jednej alebo viacerým položkám v inej tabuľke. Príklad:
- Tabuľka Objednávky obsahuje objednávky zadané viacerými zákazníkmi (ktorí sú uvedení v tabuľke Zákazníci) a zákazník môže zadať viac ako jednu objednávku.
- Tabuľka Produkty obsahuje jednotlivé produkty, ktoré predávate, ktoré sú súčasťou mnohých objednávok v tabuľke Objednávky.
- Jedna objednávka môže obsahovať jednu inštanciu (alebo viac inštancií) konkrétneho produktu a/alebo jednu inštanciu (alebo viac ako jednu inštanciu) viacerých produktov.
Napríklad číslo objednávky zákazníka Elizabeth Andersenovej 1012 môže obsahovať jeden z produktov 12 a 15 a päť produktov 30.
Vytvorenie vzťahov „many-to-many“
Vzťahy typu many-to-many sa vytvárajú inak ako vzťahy "one-to-one" alebo "one-to-many". V prípade týchto vzťahov jednoducho prepojíte príslušné polia čiarou. Ak chcete vytvoriť vzťahy typu many-to-many, musíte vytvoriť novú tabuľku na prepojenie ďalších dvoch vzťahov. Táto nová tabuľka sa nazýva sprostredkúvaná tabuľka (alebo niekedy prepájajúca alebo spojovacia tabuľka).
V scenári popísanom vyššie vytvoríte tabuľku Podrobnosti objednávky so záznamami, ktoré obsahujú pre každú položku v danom poradí ID z tabuľky Objednávky a ID z tabuľky Produkty. Primárny kľúč pre túto tabuľku vytvoríte pomocou kombinovaných kľúčov z oboch tabuliek.
V našom scenári sa číslo objednávky Elizabeth Andersenovej 1012 skladá z produktov 12, 15 a 30. To znamená, že naše položky podrobnosti objednávok vyzerajú takto:
| Identifikácia objednávky | ID produktu |
|---|---|
| 1012 | 12 |
| 1012 | 15 |
| 1012 | 30 |
Elizabeth si objednala jeden z produktov 12 a 15 a päť produktov 30. Nemôžeme pridať ďalší riadok s číslami 1012 a 30, pretože ID objednávky a id produktu spolu tvoria hlavný kľúč a primárne kľúče musia byť jedinečné. Namiesto toho pridáme pole Množstvo do tabuľky Podrobnosti objednávky.
| Identifikácia objednávky | ID produktu | Quantity |
|---|---|---|
| 1012 | 12 | 1 |
| 1012 | 15 | 1 |
| 1012 | 30 | 5 |
Vytvorenie medziproduktovej tabuľky
- Vyberte položku Vytvoriť tabuľku>.
- Vyberte položku Uložiť uloženie
. - V prípade názvu tabuľky zadajte popisný názov. Na označenie účelu môžete do názvu tabuľky zahrnúť spojenie alebo medziprodukt .
Vytvorenie polí v priebežnej tabuľke
Ako prvý stĺpec tabuľky Access automaticky pridá pole identifikácie. Zmeňte toto pole tak, aby zodpovedalo identifikácii prvej tabuľky vo vzťahu typu many-to-many. Ak je prvou tabuľkou napríklad tabuľka Objednávky s názvom ID objednávky a jej hlavným kľúčom je číslo, zmeňte názov poľa IDENTIFIKÁCIA v novej tabuľke na ID objednávky a pre typ údajov použite číslo.
- V údajovom zobrazení vyberte záhlavie stĺpca IDENTIFIKÁCIA a potom zadajte nový názov poľa.
- Vyberte pole, ktoré ste práve premenovali.
- Na karte Polia tabuľky vyberte v časti Typ údajov typ údajov, ktorý sa má zhodovať s poľom v pôvodnej tabuľke, ako je napríklad Číslo alebo Krátky text.
- Vyberte položku Kliknutím pridať a potom vyberte typ údajov, ktorý zodpovedá hlavnému kľúču v druhej tabuľke. Do záhlavia stĺpca, ktorý je už vybratý, zadajte názov poľa hlavného kľúča z druhej tabuľky, napríklad ID produktu.
- Ak potrebujete sledovať ďalšie informácie o týchto záznamoch, ako je napríklad množstvo položiek, vytvorte ďalšie polia.
Kombinovanie polí primárnych identifikátorov
Teraz, keď máte polia obsahujúce identifikácie z dvoch tabuliek, ktoré chcete pripojiť, vytvorte primárny kľúč na základe týchto identifikátorov v priebežnej tabuľke.
- V návrhovom zobrazení otvorte priebežnú tabuľku.
- Vyberte oba riadky, ktoré obsahujú identifikátory. (Ak ste postupovali podľa predchádzajúceho postupu, ide o prvé dva riadky.)
- Vyberteprimárny kľúčnávrhu> tabuľky.
Vedľa oboch polí IDENTIFIKÁCIA sa zobrazia kľúčové ikony.
Pripojenie troch tabuliek a vytvorenie vzťahu typu many-to-many
Ak chcete dokončiť vzťah typu many-to-many, vytvorte vzťah "one-to-many" medzi poľom hlavného kľúča v každej tabuľke a zodpovedajúcim poľom v priebežnej tabuľke. Podrobnosti o tomto postupe nájdete v téme Začíname so vzťahmi tabuliek.
Po dokončení by vzťahy mali vyzerať približne takto: