Avatar billede supermand69 Nybegynder
09. januar 2004 - 22:55 Der er 13 kommentarer og
1 løsning

primær eller index

hvad er forskellen helt præcist på de to nøgler??
Avatar billede arne_v Ekspert
09. januar 2004 - 23:02 #1
En primær nøgle er en unik identifikation af en række i tabellen.

Et index er noget som gør det hurtigt at finde rækker med en bestemt værdi
i et bestemt felt.

Et unikt index er et inden hvor felt værdierne skal være unikke.

Et unikt index minder derfor lidt om en primær nøgle.
Avatar billede arne_v Ekspert
09. januar 2004 - 23:02 #2
En fremmed nøgle er et felt i en tabel hvis værdi svarer til en
primær nøgle værdi i en anden tabel (den peger på en række i en anden tabel).
Avatar billede supermand69 Nybegynder
09. januar 2004 - 23:11 #3
dvs.

hvis man i mit eksempel i "struktur og hastighed" lavede de 3 tabeller... så skulle id i tablen med navne være primær og KUN den??
Avatar billede supermand69 Nybegynder
09. januar 2004 - 23:12 #4
altså i de andre to tabeller kan man nøjes med en index på id??
Avatar billede arne_v Ekspert
09. januar 2004 - 23:29 #5
I navne tabellen skulle id være primær nøgle.

I den anden tabel vil du have brug for en sammensat primær nøgle af
de to felter id og var_arr for at få en unik nøgle.
Avatar billede supermand69 Nybegynder
09. januar 2004 - 23:37 #6
ok.. nu er jeg ikke helt med... du for lige et lidt andet spm:

Jeg har en table med brugere og en table med begivenheder... Hver bruger skal så kunne vælge en eller flere begivenheder, og spørgsmålet er så hvordan strukturen skal være for at den bliver mest optimal?

Når man så på selve siden vælger at få vist en bruger, skal man kunne se hvilke begivenheder han har valgt, og omvendt hvis man vælger at få vist en begivenhed skal man kunne se hvilke brugere der har valgt netop denne begivenhed...

Jeg ved ikke om I er helt med på hvad jeg mener?? hehe...

Hvordan ville strukturen i min database se ud for at den blev mest optimal...?
Avatar billede arne_v Ekspert
09. januar 2004 - 23:43 #7
Hvis en begivenhed kun kan være tilknyttet en bruger, så laver du et
felt i begivenhed som indeholder id på bruger (en fremmed nøgle).

Hvis en begivenhed kan have flere brugere (som jeg læser din kommentar), så skal
du have en sammenknytnings tabel med to felter: brugerid og begivenhedsid
(en sammesat primær nøgle).
Avatar billede supermand69 Nybegynder
09. januar 2004 - 23:47 #8
hver begivenhed skal kunne have flere brugere som du skriver til sidst :)

gider du så ikke skære det lidt mere ud i pap så jeg kan forstå det?
Avatar billede arne_v Ekspert
09. januar 2004 - 23:50 #9
bruger
------
id  navn
1  Hans
2  Jens

begivenhed
----------
id    beskrivelse
1    barnedåb
2    80 års fødselsdag

brugerbegivenhed
----------------
brugerid  begivenhedid
1              1
1              2
2              1
Avatar billede supermand69 Nybegynder
09. januar 2004 - 23:57 #10
arh ok... :)

jeg bliver mere og mere krævende.. kan du ikke også lige sætte nøgler på de forskellige felter så jeg ligesom kan få et større overblik over det? er godt med på ideen nu...
Avatar billede supermand69 Nybegynder
10. januar 2004 - 00:00 #11
er ikke helt med på det det med sammensat primær nøgle... det er måske det samme som en primær nøgle?
Avatar billede arne_v Ekspert
10. januar 2004 - 00:00 #12
bruger primær nøgle = id
begivenhed primær nøgle = id
brugerbegivenhed primær nøgle = brugerid og begivenhedid
Avatar billede arne_v Ekspert
10. januar 2004 - 00:01 #13
En sammensat primær nøgle er en primær nøgle som består af mere end et felt
Avatar billede supermand69 Nybegynder
10. januar 2004 - 00:04 #14
mange tak for hjælpen :)
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
Computerworld tilbyder specialiserede kurser i database-management

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