Avatar billede jones279 Nybegynder
28. marts 2005 - 14:29 Der er 7 kommentarer og
2 løsninger

Forklaring af Mange-til-mange

Hejsa, jeg har ikke helt forstået idéen i mange-til-mange relationer, jeg forstår ikke at de i nedenstående tekst bruger en ny tabel for at gøre op med mange-til-mange relationen... Det burde da være muligt at droppe den sidste language tabel?? ( http://techrepublic.com.com/i/tr/cms/contentPics/r00720030502obr01_A.gif )
eller hvad?? Den eneste grund til at lade den stå der, så vidt jeg kan se - er hvis et sprog skulle skifte navn - men hvor tit sker det?? :)

http://techrepublic.com.com/5100-6329-5034790.html#


Håber i kan forklare mig det...??
Avatar billede terry Ekspert
28. marts 2005 - 14:37 #1
If you remove tblCandidateLanguage then each Canditate cna only have one Language.

The tblCandidateLanguage allows a Candidate to have MANY langauges
Avatar billede mugs Novice
28. marts 2005 - 14:41 #2
Det er da også muligt at droppe Language tabellen. Ulempen vil så være at du hver gang skal stave til et language i tblCandidatelanguage. Du kan ikke af billedet se, om feltet Language er en kombinationsboks, der kan sikre dig mod stavefejl og imod at oprette poster der ikke eksisterer.

I tblLanguage er Language PK og kan derfor kun optræde een gang. I tblCandidatelanguage er Candidateid og language en sammensat PK og hver Candidate kan kun optræde een gang med det samme sprog, hvorimod mange Candidate kan tale det samme sprog, derfor en til mange. F.eks.:

Peter - dansk
Poul  - dansk
Per  - engelsk
Peter - engelsk
Avatar billede terry Ekspert
28. marts 2005 - 14:44 #3
tblLanguage contains MANY langauges tblCandidate contains MANY candidates. If you removed tblCandidateLangauge then each candidate could only choose one Langauge.

EXAMPLE:

tblCandidate:
CandidateID = 1, ......
CandidateID = 2, ......

tblLanguage:
Language = DK
Language = UK
Language = VB


tblCandidateLanguage
CandidateID = 1, Language = DK
CandidateID = 1, Language = UK
CandidateID = 2, Language = DK


You can see that CandidateID = 1 has two langauges.

If you changed tblCandidate to contain Language

tblCandidate:
CandidateID = 1, Language = DK ......

then they can only have ONE language (one-to-many)
Avatar billede jones279 Nybegynder
28. marts 2005 - 16:15 #4
Skal man ikke stave til sproget alligevel hver gang???!

Jeg kan ikke se hvorfor man ikke bare kan droppe den?
Avatar billede jones279 Nybegynder
28. marts 2005 - 16:15 #5
Man skal vel have CPR nummer og Sprog skrevet ind hver gang alligevel??
Avatar billede mugs Novice
28. marts 2005 - 16:48 #6
Hvis du i Language tabellen opretter hvert sprog, kan du i tblCandidateLanguage lave en kombinationsboks der "plukker" et sprog uden du behøver at skrive det. Samtidig sikrer du dig imod stavefejl.

CPRNR er et unikt udtryk for en person, eller i dette tilfælde en candidate. tblCandidate skal du have udfyldt før du kan begynde at parre en kandidat med et sprog. På denne måde behøver du faktisk ikke at skrive noget når du skal udfylde tblCandidateLanguage, du bruger bare dine kombinationsbokse.
Avatar billede terry Ekspert
28. marts 2005 - 17:14 #7
Lets say that your "sprog" table contains two or more fields, for example>


ID, Country, Language

1, "England", "English"
2, "U.S.A", "English"
3, "Denamrk", Danish"

Then in tblCandidateLanguage instead of using the Language field you use ID.

Do you see the point now?
Avatar billede jones279 Nybegynder
31. marts 2005 - 12:32 #8
Tak for hjælpen - tror jeg fatter det nu :)

Hvis en af jer har tid, ville det være sejt om i kunne kontakte mig på MSN ( jonas@buttcher.dk ) eller ICQ: 75266648...

//Jones
Avatar billede terry Ekspert
03. april 2005 - 14:38 #9
thanks Jones, what further help do you need?
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