Probeer het zelf
Wat is een veel-op-veelrelatie?
Veel-op-veelrelaties zijn de meestgebruikte tabelrelaties. Deze bevatten belangrijke informatie, zoals welke verkopers contact hebben opgenomen met welke klanten en uit welke producten de klantorders bestaan.
Er bestaat een veel-op-veelrelatie wanneer een of meer items in een tabel een relatie kunnen hebben met een of meer items in een andere tabel. Bijvoorbeeld:
-
De tabel Order bevat orders die zijn geplaatst door meerdere klanten (die zijn opgenomen in de tabel Klanten) en een klant kan meerdere orders plaatsen.
-
De tabel Producten bevat de afzonderlijke producten die u verkoopt en die deel uitmaken van veel orders in de tabel Order.
-
Eén order kan één exemplaar (of meerdere exemplaren) van een specifiek product bevatten en/of één exemplaar (of meerdere exemplaren) van meerdere producten.
Ordernummer 1012 van de klant Gwenda Regter kan bijvoorbeeld één exemplaar van product 12, één exemplaar van product 15 en vijf exemplaren van product 30 bevatten.
Veel-op-veelrelaties maken
U maakt veel-op-veelrelaties anders dan een-op-een- of een-op-veel-relaties. Voor deze relaties hoeft u alleen de relevante velden te verbinden met een lijn. Als u veel-op-veelrelaties wilt maken, moet u een nieuwe tabel maken om de andere twee tabellen te verbinden. Deze nieuwe tabel heet een tussenliggende tabel (of soms een koppelings- of verbindingstabel).
In het scenario dat eerder is beschreven, hebt u een tabel Ordergegevens gemaakt met records die voor elk item in elke volgorde de id uit de tabel Order en de id uit de tabel Producten bevatten. U maakt een primaire sleutel voor deze tabel met de gecombineerde sleutels van de twee tabellen.
In ons scenario bestaat het ordernummer van Gwenda Regter 1012 uit producten 12, 15 en 30. Dit betekent dat de vermeldingen in Ordergegevens er als volgt uitzien:
Order ID |
Product ID |
---|---|
1012 |
12 |
1012 |
15 |
1012 |
30 |
Gwenda heeft van product 12 en 15 elk één exemplaar besteld en vijf exemplaren van product 30. We kunnen niet nog een rij met 1012 en 30 toevoegen omdat de primaire sleutel bestaat uit een combinatie van de order-id en de product-id en primaire sleutels uniek moeten zijn. In plaats daarvan voegen we het veld Hoeveelheid toe aan de tabel Ordergegevens.
Order ID |
Product ID |
Hoeveelheid |
---|---|---|
1012 |
12 |
1 |
1012 |
15 |
1 |
1012 |
30 |
5 |
Een tussenliggende tabel maken
-
Selecteer Maken > Tabel.
-
Selecteer Opslaan .
-
Geef een beschrijvende naam op bij Tabelnaam. U kunt het doel aangeven door verbinding of tussenliggend op te nemen in de tabelnaam.
Velden maken in de tussenliggende tabel
Als eerste tabelkolom voegt Access automatisch een id-veld toe. Wijzig dit veld zo dat dit overeenkomt met de id van de eerste tabel in de veel-op-veelrelatie. Als de eerste tabel bijvoorbeeld een ordertabel is met de naam Order-id en de primaire sleutel hiervan een getal is, wijzigt u de naam van het id-veld in de nieuwe tabel in Order-id en gebruikt u Getal als gegevenstype.
-
Selecteer in de gegevensbladweergave de kolomkop Id en typ de nieuwe naam voor het veld.
-
Selecteer het veld dat u net hebt gewijzigd.
-
Selecteer op het tabblad Tabelvelden onder Gegevenstype een gegevenstype dat overeenkomt met het veld in de oorspronkelijke tabel, zoals Getal of Korte tekst.
-
Selecteer Klik om toe te voegen en selecteer een gegevenstype dat overeenkomt met de primaire sleutel in de tweede tabel. Typ in de kolomkop, die al is geselecteerd, de naam van het primaire-sleutelveld van de tweede tabel, zoals Product-id.
-
Als u andere informatie over deze records wilt bijhouden, zoals de artikelhoeveelheid, maakt u extra velden.
Primaire id-velden combineren
Nu u velden hebt met id's van de twee tabellen die u wilt verbinden, maakt u een primaire sleutel op basis van deze id's in de tussenliggende tabel.
-
Open de tussenliggende tabel in de ontwerpweergave.
-
Selecteer de twee rijen die de id's bevatten. (Als u de vorige procedure hebt gevolgd, zijn dit de eerste twee rijen.)
-
Selecteer Tabelontwerp > primaire sleutel.
Sleutelpictogrammen worden weergegeven naast beide id-velden.
De drie tabellen verbinden om de veel-op-veelrelatie te maken
U voltooit de veel-op-veelrelatie door een een-op-veel-relatie te maken tussen het primaire-sleutelveld in elke tabel en het overeenkomende veld in de tussenliggende tabel. Zie Aan de slag met tabelrelaties voor informatie over hoe u dit doet.
Wanneer u klaar bent, zien de relaties er ongeveer als volgt uit: