Avatar billede bat1234 Juniormester
19. august 2002 - 12:33 Der er 7 kommentarer og
1 løsning

mange til mange - eller??

Hej,

jeg skal lave en database over bilforhandlere. Hver bilforhandler kan reparere flere forskellige slags bilmærker, f.eks. både peugeot, volvo osv.

Man skal kunne søge på et bilmærke og derved få alle de forhandlere frem der kan reparere dette bilmærke. Hvordan gøres dette??

Jeg vil selvfølgelig gerne have forhandlerne i én tabel og bilmærkerne i en anden. Men hvordan gøres dette smartest? Det behøves ikke at være en mange-til-mange-relation hvis der er en smartere måde at klare det på.

Hvad gør jeg?

Kan nogen evt. henvise til en database på internettet man kunne downloade?

Hvis mange-til-mange-relation er den eneste løsning, hvordan laver man så en sådan??

Venlig hilsen,
Bat.
Avatar billede bocker Nybegynder
19. august 2002 - 13:27 #1
Det smarteste ville være en many-to-many-relation. Det er sådan set meget simpelt at lave. Hvis du har en tabel til forhandlere og en til bilmærker, skal du bare lave et link i mellem dem.

Forhandler tabel:
forhandler_id
forhandler_navn
forhandler_adresse

Bilmaerke tabel:
bilmaerke_id
bilmaerke_navn

Forhandler_bilmaerke tabel:
forhandler_id
bilmaerke_id

Hvis nu en bilforhandler med forhandler_id 1 reparerer både Ford, Mazda m.m., så tilføjer du bare en relation til Forhandler_bilmaerke tabellen med forhandler_id = forhandler_id fra Forhandler tabellen og bilmaerke_id = bilmaerke_id fra Bilmaerke tabellen. Så skal du bare tilføje én linje pr. forhandler og bilmærke de reparerer.
Avatar billede alexbp Nybegynder
19. august 2002 - 15:49 #2
Du skal vel have 2 tabeller:

BIL  (0,N) <- kan_repareres -> (1,1) FORHANDLER

Dvs. en en-til-mange relatio, idet én FORHANDLER, kan reperere 0 eller flere BILER, og idet at én BIL kun er tilknyttet en reperatør pr. gang/pr. mulig reperation, skal du efter min mening kun have kardinaliteter 1-N mellem FORHANDLER og BIL
Avatar billede susanne_larsen Nybegynder
19. august 2002 - 17:44 #3
lad være med at oprette mange-til-mange relationer, giver dig kun problemer. Er betydeligt lettere at have med at gøre hvis du opretter en-til-mange
Avatar billede bocker Nybegynder
20. august 2002 - 10:11 #4
Kan vi lige få lidt begrundelse for de svar? Han skal bruge noget, så man kan søge de forhandlere der tager de forskellige bilmærker ind, og ikke et system til at håndtere de biler der er til reparation. Hvis i mener man er bedre tjent med at oprette hvert bilmærke hver gang en forhandler tager den ind, så får i da en stor mængde data i databasen, som let kunne undgås. Men jeg vil gerne høre jeres begrundelser for hvorfor man ikke skulle bruge many-to-many?
Avatar billede bat1234 Juniormester
20. august 2002 - 10:46 #5
bocker: jeg lavede en many-many som du beskrev, og det virker!! -indtil videre ihvertfald, skal lige teste noget mere. Du har ret i at det ikke er et biler-der-er-til-reparation-system jeg er ved at lave men blot en simpel søgebase, hvor man kan finde et værksted der reparerer et bestemt mærke.

susanne: hvilke problemer? Og hvis jeg ikke kan bruge mange-mange, hvordan kan jeg så opnå den funktionalitet jeg har brug for ved kun at bruge en-mange relationer??
Avatar billede bocker Nybegynder
20. august 2002 - 11:21 #6
Jeg tror alexbp og susanne har misforstået, hvad du vil lave. Hvis det var et reparationsskema, ville jeg helt klart også benytte det andet, men many-to-many er den rigtige måde at lave det på her.
Avatar billede hossein Nybegynder
20. august 2002 - 23:02 #7
bockers forslag is simply the best!
Avatar billede susanne_larsen Nybegynder
21. august 2002 - 17:02 #8
>>bocker
jep du har ret misforstod sp ;)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester