Avatar billede encorez Nybegynder
14. april 2012 - 14:20 Der er 11 kommentarer og
1 løsning

Komma eller punktum i database

Hej

Når jeg i PHP skal lave beregninger på tal med decimaler og negative tal, hvordan er det så smartest at lagre disse tal i MySQL DB?

Man kan jo lige så godt gemme dataerne på den mest optimale måde når de indsættes i databasen.

Skal decimal tal være anvendt med komma eller punktum?

For både at kunne håndtere negative og decimal tal, hvilken type datafelt anbefales der i MySQL?

Mvh. Simon
Avatar billede inteeeL Nybegynder
14. april 2012 - 14:48 #1
Det ville være mest optimalt at anvende punktum ved decimaltal, når tallene skal i databasen, da det er nemmest lave beregninger med i PHP. Dog kan du naturligvis selv formatere dine tal, når de igen skal skrives ud ved eksempel at bruge komma som separator til decimaltal (numberformat() eksempelvis).

Jeg ville bruge en integer type til datafeltet. Der er flere at vælge mellem (http://dev.mysql.com/doc/refman/5.5/en/integer-types.html), men den mest passende/almindelige ville være int.
Avatar billede vagnk Juniormester
14. april 2012 - 14:48 #2
Engelsk/amerikansk dvs decimalseparator er punktum og tusindseparatoer er komma.

0 point
Avatar billede encorez Nybegynder
14. april 2012 - 15:11 #3
Tak til jer begge for input.

Du skriver en interger type til datafeltet men den kan vel ikke indeholde decimaltal, eller er jeg forkert på den?
Avatar billede inteeeL Nybegynder
14. april 2012 - 15:17 #4
Hov, det er mig, der ikke lige fik tænkt, før jeg skrev. Integer er selvfølgelig hele tal og ikke passende i dette tilfælde.
Avatar billede inteeeL Nybegynder
14. april 2012 - 15:20 #5
http://help.scibit.com/mascon/masconMySQL_Field_Types.html
- Decimal kunne være en mulighed, ellers blot helt almindelig varchar.
Avatar billede nemlig Professor
14. april 2012 - 15:47 #6
Ud fra en performance betragtning, mener jeg, at varchar fylder 255 tegn - char er i så fald bedre.
Jeg selv ville vælge "decimal" og dermed gemmes decimaltegnet med punktum.
Avatar billede The_Buzz Novice
14. april 2012 - 15:55 #7
Afhænging af hvor mange decimaler og heltal ville jeg bruge f.eks.

decimal 7,2
Avatar billede olebole Juniormester
14. april 2012 - 16:42 #8
<ole>

#6: Data i et CHAR felt fylder det, kolonnen er sat til maksimalt at kunne rumme (f.eks. 255). Data i et VARCHAR felt fylder det, data fylder, uanset hvad feltet er sat til - og så kan VARCHAR fra og med MySQL 5.0.3 i øvrigt rumme 65.535 bytes  =)

DECIMAL vil klart være at foretrække, hvilket også gør det lettere at lade MySQL foretage en lang række beregninger.

/mvh
</bole>
Avatar billede encorez Nybegynder
14. april 2012 - 19:28 #9
Tak for jeres input. Det lyder til det skal være en DECIMAL.

Læg et svar som tak for jeres hjælp
Avatar billede nemlig Professor
14. april 2012 - 19:38 #10
Jeg samler ikke.
Avatar billede inteeeL Nybegynder
14. april 2012 - 19:41 #11
Svar :-)
Avatar billede olebole Juniormester
14. april 2012 - 19:53 #12
Ellers tak, jeg samler heller ikke 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
Vi tilbyder markedets bedste kurser inden for webudvikling

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