Auge: Geldbeträge in DB speichern

Beitrag lesen

Hallo

in einer MySQL Tabelle ist eine Spalte "salary" als decimal(10,0) definiert.
Wenn man nun in einer PHP Webseite die ein Textfeld "Geldbetrag" enthält speichert und hier jemand z.b. 50.000 eingibt, dann wird nur der Wert 50 in der DB gespeichert.

Ist der Datentyp decimal ok oder sollte man als "varchar" speichern?

Ja, decimal ist schon richtig. Es ist nur wichtig, zu wissen, welches Zeichen welche Bedeutung hat.

Sollte man eine Eingabe mit Punkt verbieten?

Der Wert, der bei dir 50.000 (fünfzigtausend) beträgt, wird in der Datenbank als 50 gespeichert, weil der Punkt in der englischen Sprache der Dezimaltrenner ist (in Deutschland ist dies das Komma). Du musst also die Eingabe des Punktes verhindern oder den Eingabewert prüfen. Bei ersterem vergrätzt du ohne weitere Erklärung die Nutzer, bei letzterem musst du mit Annahmen arbeiten, die falsch sein können. Inwieweit die im Zweifelsfalle wiederholte Nachfrage, ob diese oder jene Interpretation richtig ist, nutzerseitig zu Nervereien führt, musst du sehen (und hernach zu vermeiden suchen).

Tschö, Auge

--
Verschiedene Glocken läuteten in der Stadt, und jede von ihnen vertrat eine ganz persönliche Meinung darüber, wann es Mitternacht war.
Terry Pratchett, "Wachen! Wachen!"
ie:{ fl:| br:> va:) ls:[ fo:) rl:( ss:| de:> js:| zu:}
Veranstaltungsdatenbank Vdb 0.3