Avatar billede woowii Nybegynder
03. november 2007 - 12:13 Der er 4 kommentarer

Gennemsnit af alle værdier i ét felt

Hej,

Jeg skal have lavet et mindre rating system i forbindelse med en kategori og min umiddelbare tanke var at gemme alle stemme værdierne (som er fastsat som et tal mellem 0 og 10) i et felt, separeret af et komma. Men så kommer næste problem, hvis jeg vil sortere alle indlæg efter dem med højeste stemme gennemsnit så skal jeg hive alle værdier ud og vha. PHP sortere dem - dette er naturligvis muligt, men umiddelbart tager det ret mange ressourcer når det skal bruges som oversigt (såfremt at der kommer en del posts i denne DB). Derfor tænkte jeg om der er nogen mulighed for allerede i ens query at tage gennemsnittet af et felt?

Jeg ved godt at det kan laves på andre måder, men jeg vil helst have så alle informationer om hver ting er gemt sammen med den. Håber I har nogle idéer. :)
Avatar billede arne_v Ekspert
03. november 2007 - 15:02 #1
Lave et andet database design.

En rækker per stemme.

SÅ kan du bare bruge AVG funktionen.
Avatar billede woowii Nybegynder
03. november 2007 - 15:47 #2
"Jeg ved godt at det kan laves på andre måder, men jeg vil helst have så alle informationer om hver ting er gemt sammen med den. Håber I har nogle idéer. :)"
Avatar billede kjulius Novice
04. november 2007 - 12:21 #3
I næsten alle sammmenhænge (undtagen at du "med det menneskelige øje" kan se alle værdier samlet) er det en ualmindelig dårlig idé at samle en række værdier i ét felt). Det er at menneskeliggøre SQL software, og det er det ikke tjent med. Det vil være umanerligt svært at foretage selv simple regnestykker på sådanne værdier. Ja, du kan faktisk ikke bruge dem til ret meget, undtagen at kigge på dem.

Så mit råd ville absolut og uden forbehold være: Lav en separat tabel til kategori-stemmerne og skab en relation mellem kategorien og kategoristemmerne.

Det var ikke det du ville høre, og jeg forventer heller ikke point eller anden goodwill, men det skulle siges. :-)
Avatar billede woowii Nybegynder
12. januar 2008 - 08:43 #4
Kjulius - havde helt glemt denne tråd (hvordan ved jeg ikke :P), men mange tak for din post. Selvom det i første omgang ikke lige var det svar jeg håbede efter kan jeg godt se hvad du mener nu og jeg har gjort det på den 'normale' måde. Du må meget gerne smide et svar hvis du vil have point. :)
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