many-to-many relationship

Status
Niet open voor verdere reacties.

wardus

Nieuwe gebruiker
Lid geworden
8 sep 2011
Berichten
3
Hoi allemaal!

Ik zit vast met een relationship die ik netjes in access probeer te zetten.
Ik heb access al een tijdje niet gebruikt, dus iedere vorm van hulp wordt erg gewaardeerd!

Er zijn 10 bedrijven, welke 1 of meerdere problemen hebben (max 10).
Deze problemen worden verholpen door 1 of meer oplossingen (max 10)

Dus als voorbeeld:

Bedrijf X heeft probleem 1, 2 en 3. Ze gebruiken oplossing A, B, C en D.

Probleem 1 is verholpen door A
Probleem 2 is verholpen door A, C & D
Probleem 3 is verholpen door B & C

Maar het volgende bedrijf kan andere oplossingen gebruiken voor dezelfde problemen, of andere problemen waar ze dezelfde oplossingen voor gebruiken (dit staat dus niet vast).

Hoe kan ik dit het beste in een database zetten? Moet ik een aparte tabel maken voor ieder probleem waar ik checkboxes gebruik om de oplossingen voor dat probleem bij te houden?

Hopelijk is mijn probleem helder, het is geen standaard many-to-many relationship waarbij ik de primary keys kan combineren.

Alvast bedankt voor je tijd en moeite,

Wardus
 
... het is geen standaard many-to-many relationship waarbij ik de primary keys kan combineren.
Dat weet ik nog zo net niet, het klinkt allemaal redelijk standaard. Je legt de procedure die je gebruikt overigens niet uit, en dat maakt een antwoord wat lastiger. Maar ik vermoed dat je in ieder geval drie tabellen hebt: [tblKlanten], [tblProblemen] en [tblOplossingen]. Elk uiteraard met een eigen sleutelveld. Wat je niet vertelt, en wat dus essentieel is voor de oplossing, is hoe je de problemen registreert. Normaal gesproken (doe ik ook) leg je een probeem vast in een [tblMeldingen] waarin je een KlantID, en (in jouw geval), een datum_aanmelding, een datum_opgelostm een ProbleemID en een OplossingID etc. vastlegt. Jij kiest voor een werkwijze met meerdere oplossingen per probleem, dus daar zou je een aparte gekoppelde tabel voor moeten hebben ([tblMelding_Oplossing]). De structuur is dus redelijk standaard. Werken met selectievakjes is een erg slecht idee, omdat je dan de normalisatie van je db bij het groot vuil zet. Zou ik niet doen, en is ook nergens voor nodig.
 
Wardus,

Standaard wordt een many-to-many relatie opgelost door een tussentabel te maken.
In het voorbeeld van Octafish wordt dan een tabel geplaatst tussen tblProblemen en tblOplossingen bijvoorbeeld
tblProbOplo deze houd alleen maar bij het unieke probleemnummer uit tblProblemen en een uniek oplossingsnummer uit tblOplossingen,
samen met relevante informatie als datum en status.
Als nu het probleem wordt opgevraagd wordt er gelijk een lijst getoond met de oplossingen die zijn geprobeerd.

Veel Succes.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan