Prøv det!
Hvad er mange til mange-relationer?
Mange til mange-relationer er de mest brugte i tabelrelationer. De giver vigtige oplysninger om, hvilke kunder, dine sælgere har kontaktet, og hvilke produkter, der er bestilt mm.
En mange til mange-relation findes, når et eller flere elementer i én tabel kan have relationer til en eller flere elementer i en anden tabel. Eksempel:
-
Din ordretabel indeholder ordrer fra flere kunder (der er angivet i kundetabellen), og en kunde kan placere mere end én ordre.
-
Produkttabellen indeholder de enkelte produkter, du sælger, som er en del af mange ordrer i ordretabellen.
-
Én ordre kan indeholde én forekomst (eller mere end én forekomst) af et bestemt produkt og/eller én forekomst (eller mere end én forekomst) af flere produkter.
Kunden Elizabeth Andersens ordrenummer 1012 kan f.eks indeholde en af hver af produkterne 12 og 15 og fem af produkt 30.
Opret mange til mange-relationer
Du opretter mange til mange-relationer anderledes end en til en-relationer eller en til mange-relationer. Her forbinder du skal blot de relevante felter med en linje. For at oprette mange til mange-relationer, skal du oprette en ny tabel, du kan forbinde med de to andre. Denne nye tabel kaldes en mellemliggende tabel (eller nogle gange en sammenkædende tabel eller samlingstabel).
I det scenarie, der er beskrevet tidligere, opretter du en tabel med ordredetaljer med poster, der indeholder id fra ordretabellen og produkttabellen, for hvert enkelt produkt i hvilken som helst ordre. Du opretter en primær nøgle til den tabel ved at bruge den kombinerede nøgle fra de to tabeller.
I vores scenarie består Elizabeth Andersens ordrenummer, 1012, af produkterne 12, 15 og 30. Det betyder, at vores poster for ordredetaljer ser således ud:
Ordre-id |
Produkt-id |
---|---|
1012 |
12 |
1012 |
15 |
1012 |
30 |
Elizabeth bestilte et af hver af produkterne 12 og 15 og fem af produktet 30. Vi kan ikke tilføje en anden række med 1012 og 30, fordi ordre-id og produkt-id sammen udgør vores primære nøgle, og primære nøgler skal være unikke. I stedet tilføjer vi et antalsfelt til tabellen Ordredetaljer.
Ordre-id |
Produkt-id |
Antal |
---|---|---|
1012 |
12 |
1 |
1012 |
15 |
1 |
1012 |
30 |
5 |
Opret en midlertidig tabel
-
Vælg Opret > Tabel.
-
Vælg Gem .
-
Som Tabelnavn, angiv en beskrivende titel. For at angive dens formål, kan du tage samlingstabellen eller mellemliggende med i tabelnavnet.
Opret felter i den mellemliggende tabel
Som den første tabelkolonne tilføjer Access automatisk et id-felt. Rediger feltet til at matche med id'et i den første tabel i din mange til mange-relation. For eksempel, hvis den første ordretabel kaldes Ordre-id, og dens primære nøgle er et tal, så skal du ændre navnet i id-feltet i den nye tabel til Ordre-id, og bruge et Tal til datatypen.
-
I Dataarkvisning skal du vælge kolonneoverskriften Id og derefter indtaste det nye navn for feltet.
-
Vælg det felt, du lige har omdøbt.
-
På fanen Tabelfelter under Datatype skal du vælge en datatype, der passer til feltet i den oprindelige tabel, f.eks . Tal eller Kort tekst.
-
Vælg Klik for at tilføje, og vælg derefter en datatype, der svarer til den primære nøgle i den anden tabel. I kolonneoverskriften, som allerede er markeret, skal du skrive navnet på primær nøgle-feltet fra den anden tabel, f.eks. Produkt-id.
-
Hvis du har brug for at spore andre oplysninger om disse poster, f.eks antallet af elementer, skal du oprette flere felter.
Kombiner primære id-felter
Nu, hvor du har felter, der indeholder id'er fra de to tabeller, du vil forbinde, skal du oprette en primær nøgle baseret på disse id'er, i den mellemliggende tabel.
-
Åbn den midlertidige tabel i Designvisning.
-
Markér begge rækker, der indeholder id'erne. (Hvis du har fulgt den tidligere procedure, er det de to første rækker).
-
Vælg Tabeldesign > primær nøgle.
Nøgleikoner vises ud for begge id-felter.
Forbind de tre tabeller for at oprette mange til mange-relationen
For at fuldføre mange til mange-relationen, skal du oprette en en til mange-relation mellem det primære nøglefelt i hver tabel samt det tilsvarende felt i den mellemliggende tabel. Du kan se, hvordan du gør dette i Kom i gang med tabelrelationer.
Når du er færdig, bør relationerne se nogenlunde sådan ud: