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ť .
-
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.)
-
Vyberte položku Návrh tabuľky > hlavný kľúč.
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: