Prøv det!
Hva er en mange-til-mange-relasjon?
Mange-til-mange-relasjoner er de mest brukte tabellrelasjonene. De kan gi viktig informasjon, slik som hvilke kunder selgerne dine har kontaktet og hvilke produkter som ligger i bestilling fra kunder.
A mange-til-mange-relasjon finnes når ett eller flere elementer i én tabell kan ha en relasjon til ett eller flere elementer i en annen tabell. Eksempel:
-
Ordrer-tabellen din inneholder ordrer som kommer fra flere kunder (som er oppført i Kunder-tabellen), og en kunde kan ha mer enn én ordre.
-
Produkter-tabellen inneholder de enkelte produktene du selger, og de er en del av mange ordrer i Ordrer-tabellen.
-
Én ordre kan inneholde én forekomst (eller mer enn én forekomst) av et bestemt produkt og/eller én forekomst (eller mer enn én forekomst) av flere produkter.
Kunden Elizabeth Andersens ordre med nummer 1012 kan for eksempel inneholde ett av produktene 12 og 15 og fem av produktet 30.
Opprette mange-til-mange-relasjoner
Du går frem på en annen måte for å opprette mange-til-mange-relasjoner enn du gjør for én-til én eller én-til-mange. For disse relasjonene knytter du bare sammen de aktuelle feltene med en linje. For å opprette mange-til-mange-relasjoner må du opprette en ny tabell for å koble sammen de to andre tabellene. Denne nye tabellen kalles en mellomliggende tabell (eller noen ganger en koblet tabell eller foreningstabell).
I scenarioet som ble beskrevet tidligere, oppretter du en Ordredetaljer-tabell med poster som inneholder ID-en fra ordretabellen og ID-en fra Produkter-tabellen for hvert element i en gitt rekkefølge. Du oppretter en primærnøkkel for tabellen ved hjelp av de kombinerte nøklene fra de to tabellene.
I vårt tilfelle består Elizabeth Andersens ordre nummer 1012 av produktene 12, 15 og 30. Det betyr at postene i Ordredetaljer-tabellen vår ser slik ut:
Ordre-ID |
Produkt-ID |
---|---|
1012 |
12 |
1012 |
15 |
1012 |
30 |
Elizabeth bestilte ett hver av produktene 12 og 15, og fem stykker av produkt nummer 30. Vi kan ikke legge til nok en rad med 1012 og 30 fordi kombinasjonen av Ordre-ID og Produkt-ID utgjør primærnøkkelen, og primærnøkler må være unike. I stedet legger vi til et felt for antall i Ordredetaljer-tabellen.
Ordre-ID |
Produkt-ID |
Antall |
---|---|---|
1012 |
12 |
1 |
1012 |
15 |
1 |
1012 |
30 |
5 |
Opprette en mellomliggende tabell
-
Velg Opprett > Tabell.
-
Velg Lagre .
-
Bruk en beskrivende tittel for Tabellnavn. For å indikere formålet med tabellen bør du ta med foreningstabell eller mellomliggende i navnet på tabellen.
Opprett feltene i den mellomliggende tabellen
Som den første tabellkolonnen legger Access automatisk til et ID-felt. Du kan endre dette feltet for å samsvare med ID for den første tabellen i mange-til-mange-relasjonen. Dersom den første tabellen for eksempel er en ordretabell med navn Ordre-ID, og primærnøkkelen er et tall, endrer du navnet på ID-feltet i den nye tabellen til Ordre-ID og angir Tall som datatype.
-
I Dataarkvisningen velger du kolonneoverskriften ID og skriver deretter inn det nye navnet på feltet.
-
Velg det feltet som du nettopp har gitt nytt navn.
-
Velg en datatype under Datatype på Tabellfelt-fanen for å samsvare med feltet i den opprinnelige tabellen, for eksempel Tall eller Kort tekst.
-
Velg Klikk for å legge til, og velg deretter en datatype som samsvarer med primærnøkkelen i den andre tabellen. I kolonneoverskriften, som allerede er valgt, skriver du inn navnet på feltet for primærnøkkelen fra den andre tabellen, som for eksempel Produkt-ID.
-
Dersom du har behov å spore eventuell annen informasjon om disse postene, for eksempel antall produkter, kan du opprette flere felt.
Kombinere primære ID-felt
Ettersom du nå har felt som inneholder ID-er fra de to tabellene du vil koble sammen, kan du opprette en primærnøkkel i den mellomliggende tabellen, basert på disse ID-ene.
-
Åpne den mellomliggende tabellen i Utformingsvisning.
-
Merk begge radene som inneholder ID-ene. (Dersom du har fulgt prosedyren tidligere, vil det være de to første radene.)
-
Velg tabellutforming > primærnøkkel.
Nøkkelikoner vises ved siden av begge ID-feltene.
Koble sammen de tre tabellene for å opprette mange-til-mange-relasjonen
For å fullføre mange-til-mange-relasjonen kan du opprette en én-til-mange-relasjon mellom primærnøkkelfeltet i hver av tabellene og det tilsvarende feltet i den mellomliggende tabellen. Hvis du vil ha informasjon om hvordan du gjør dette, se Komme i gang med tabellrelasjoner.
Når du er ferdig, skal relasjonene se omtrent slik ut: