Avatar billede trine_h Nybegynder
27. januar 2004 - 22:17 Der er 4 kommentarer og
3 løsninger

hvilken tabel-struktur skal foretrækkes

Jeg har en tabel med personoplysninger og hobby oplysninger :

fornavn
efternavn
adresse  mm.
hobby_have
hobby_sport
hobby_musik mm.


Mit spørgsmål er så hvordan struktureres det bedst i en relationel database.

skal hobby ligge i sin egen tabel (brugeren skal kunne have en til flere hobbies) eller skal de ligge i samme tabel som personoplysninger?
Avatar billede erikjacobsen Ekspert
27. januar 2004 - 22:19 #1
databaseteorien siger at hobbies skal i separat tabel. Tabellen med hobbies skal
have en fremmednøgle til primærnøglen i "personer".
Avatar billede erikjacobsen Ekspert
27. januar 2004 - 22:20 #2
...og et godt argument er at du ikke kender min hobby. Derfor kan du ikke designe
dit udkast til at have plads i den til den præcise hobby. Men når du en
dag opdager den, kan du sagtens taste den i et felt i "hobby"-tabellen.
27. januar 2004 - 22:22 #3
Relationerne mellem personer og hhv. have, sport og musik er mange til mange-relationer, hvilket betyder at du skal have tabeller til:
persondata
havedata
sportdata
musikdata
og derudover 3 tabeller til at danne relationer mellem persondata og de 3 øvrige tabeller.
Avatar billede mugs Novice
27. januar 2004 - 22:24 #4
Enig med erikjacobsen.
Sørg for at dine feltnavne er i eet ord:

"adresse  mm."

Del dine data op i flere mindre felter:

gade
postnr

og lav en postnrtabel relateret til personoplysninger.
27. januar 2004 - 22:24 #5
Erik har ret. Jeg vil lave Hobby-tabellen således:
PersonID
Hobby
Beskrivelse


PersonID er således fremmednøgle til Person-tabellen (hvis der er et ID på denne)

Feltet hobby kan således indeholde hvad som helst: Have, Sport, Musik, Glansbilleder m.m.
Beskrivelse kan så være nogle uddybende kommentarer til personens hobby (hvor, hvor tit m.m.)
Derved kan hver person have ubegrænset antal hobbyer.
(det kan sagtens normaliseres yderligere, men dette vil række langt hen ad vejen)
Avatar billede erikjacobsen Ekspert
27. januar 2004 - 22:28 #6
Erikjuul har ret i at vi kan gå et skridt videre, så du ikke står med en
masse felter med hobbies, der er ens, men alligevel forskellige: "hunde",
"hund", "hundeopdræt", "vovser". Sådan som det står her kan du sagtens
skrive det ud sammen med personen, måske søge på det, men ikke lave en
statistik, der kan bruges til noget.
Avatar billede trine_h Nybegynder
28. januar 2004 - 09:20 #7
tak for hjælpen alle
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