Mapování relací M:N (Visual Database Tools)
Relace M:N umožňují spojit každý řádek v jedné tabulce s mnoha řádky v jiné tabulce a naopak. Můžete například vytvořit relaci M:N mezi tabulkou authors
a tabulkou titles
tak, aby odpovídala každému autorovi se všemi svými knihami a aby odpovídala každé knize všem jejím autorům. Vytvoření relace 1:N z obou tabulek nesprávně značí, že každá kniha může mít pouze jednoho autora nebo že každý autor může napsat jenom jednu knihu.
Relace M:N mezi tabulkami jsou v databázích řešeny pomocí spojovacích tabulek. Spojovací tabulka obsahuje sloupce primárního klíče dvou tabulek, které chcete propojit. Potom vytvoříte relaci ze sloupců primárního klíče každé z těchto dvou tabulek s odpovídajícími sloupci ve spojovací tabulce. V databázi pubs je tabulka titleauthor
spojovací tabulkou.
Pro vytvoření relace M:N mezi tabulkami
V diagramu databáze přidejte tabulky, mezi kterými chcete vytvořit relaci M:N.
Vytvořte třetí tabulku tak, že kliknete pravým tlačítkem myši na diagram a v místní nabídce zvolíte Nová tabulka. Z toho se stane propojovací tabulka.
V dialogovém okně Zvolit název změňte název tabulky přiřazené systémem. Například spojovací tabulka mezi tabulkou
titles
a tabulkouauthors
se teď jmenujetitleauthors
.Zkopírujte sloupce primárního klíče z každé z ostatních dvou tabulek do spojovací tabulky. Do této tabulky můžete přidat další sloupce stejně jako do jakékoli jiné tabulky.
Ve spojovací tabulce nastavte primární klíč tak, aby zahrnoval všechny sloupce primárního klíče z ostatních dvou tabulek. Podrobnosti najdete v tématu Postupy: Vytvoření primárních klíčů.
Definujte relaci typu jeden k mnoha mezi dvěma primárními tabulkami a spojovací tabulkou. Spojovací tabulka by měla být na straně „mnoho“ v obou relacích, které vytvoříte. Podrobnosti najdete v tématu Postupy: Vytváření relací mezi tabulkami.
Poznámka
Vytvoření spojovací tabulky v databázovém diagramu nevkládá data ze souvisejících tabulek do spojovací tabulky. Informace o vkládání dat do tabulky najdete v tématu Vytvoření dotazů pro vložení výsledků (Visual Database Tools).