Avatar billede supermand69 Nybegynder
26. oktober 2004 - 19:48 Der er 15 kommentarer og
1 løsning

struktur, hitliste

Jeg har en database med brugere. Hver bruger har så mulighed for at lave deres egen top 5 over deres total-yndlings-musik! :D Og derud fra skal der laves en samlet hitliste over alle brugernes top 5... Jeg har prøvet at lave en struktur nedenfor, men ved ikke om den er helt omtimal?

user_top5
-----------------
user_id (int)    PRIMARY
points (int)    PRIMARY
track_id (int)    INDEX

points: antal points som brugeren giver track'et... eks. nr. 1 får 5 points, nr. 2 får 4 points osv

track
-----------------
id (int)    INDEX
artist (varchar)PRIMARY
title (varchar)    PRIMARY

Ud fra disse to tables vil jeg så generere en samlet hitliste...
Avatar billede arne_v Ekspert
26. oktober 2004 - 19:51 #1
Skal det ikke være:

track
-----------------
id (int)    PRIMARY
artist (varchar)  INDEX
title (varchar)    INDEX

?
Avatar billede supermand69 Nybegynder
26. oktober 2004 - 19:56 #2
artist og title må ikke forekomme flere gange... man får måske ikke noget ud af at lave primary på tekst?
Avatar billede arne_v Ekspert
26. oktober 2004 - 20:02 #3
Hvis du vil gøre dem til PRIMARY så skal du helt droppe id feltet.

Alternativt kan du lave et unikt index på begge felter (sammen).
Avatar billede majkat Nybegynder
26. oktober 2004 - 20:04 #4
hvis du har en id, bør den være PRIMARY. Men der er intet til hinder for at lave et UNIQUE (artist, title) indeks.

Derudover ville jeg for første tabel antage at det burde være (user_id, track_id) der skulle være primary, men det kommer selvf. an på hvordan du regner med at udforme projektet.
Avatar billede supermand69 Nybegynder
26. oktober 2004 - 20:15 #5
skal id da altid være primary?
Avatar billede arne_v Ekspert
26. oktober 2004 - 20:19 #6
Det er den normalt ja
Avatar billede supermand69 Nybegynder
26. oktober 2004 - 20:27 #7
kender du nogle gode sider hvor man kan lære lidt om strukturering af databaser? det skal også være sådan rimeligt nemt at gå til og forstå :)
Avatar billede arne_v Ekspert
26. oktober 2004 - 20:29 #8
Der er jo altid min artikel:
  http://www.eksperten.dk/artikler/55

:-)
Avatar billede supermand69 Nybegynder
28. oktober 2004 - 20:52 #9
hvis du har tid og lyst? :)

http://www.eksperten.dk/spm/555609
Avatar billede arne_v Ekspert
28. oktober 2004 - 21:00 #10
Jeg har set den.

Men den er svær.
Avatar billede supermand69 Nybegynder
28. oktober 2004 - 21:08 #11
så er det jo nok lige noget for dig.. hehe
Avatar billede supermand69 Nybegynder
19. november 2004 - 16:55 #12
arne > lav et svar
Avatar billede arne_v Ekspert
19. november 2004 - 17:10 #13
ok
Avatar billede supermand69 Nybegynder
19. november 2004 - 17:13 #14
kan du evt. hjælpe med den her?
http://www.eksperten.dk/spm/561824
Avatar billede arne_v Ekspert
19. november 2004 - 19:24 #15
Jeg har kigget på den.

SQL koden ser OK ud for mig.
Avatar billede supermand69 Nybegynder
19. november 2004 - 19:43 #16
Den sorterer fint med points, men så snart points er identiske og den skal sortere efter last_week går det lidt galt. Den smider pænt de rækker hvor last_week=0 til sidst, men de andre bliver bare vist i tilfældig rækkefølge? :(

hvordan virker IF i MySQL egentlig?
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