Feldtyp für Preis
mark
- datenbank
0 Lude0 Michael Schröpl0 Lude
Hallo,
welchen Feldtype sollte man für eine Preisangabe eines Shops nehmen.
(MYSQL).
Ich habe von Rundungsfehler gehört, wenn man dezimal nicht ?
Ist das wahr?
Ist es besser in Cent zu rechnen?
Grüsse
mark
Hi,
ich kenne nur 'MSSQL'. Da hat es sich als sehr vorteilhaft erwiesen 'numeric (18, 2)' zu verwenden, also einen numerischen Datentyp mit 16 Stellen vor und 2 Stellen nach dem Dezimaltrenner.
Der Datentyp 'money' taugt nichts wegen vier Nachkommastellen.
Michael Schroepl raet uebrigens zum Datentyp int, was sicherlich auch seinen Charme hat, aber die Realitaet m.E. suboptimal abbildet.
Gruss,
Lude
Hi Lude,
Michael Schroepl raet uebrigens zum Datentyp int,
... und ggf. UNSIGNED, im vorliegenden Fall ...
was sicherlich auch seinen Charme hat,
... und Rundungsfehler ausschließt ...
aber die Realitaet m.E. suboptimal abbildet.
Inwiefern? Solange ich mich innerhalb einer Währung bewege, weiß ich, mit welchem Faktor ich skalieren muß; bei mehreren Währungen brauche ich eine Abbildungstabelle. Und sonst?
Viele Grüße
Michael
Hi Michael,
aber die Realitaet m.E. suboptimal abbildet.
Inwiefern? Solange ich mich innerhalb einer Währung bewege, weiß ich, mit welchem Faktor ich skalieren muß; bei mehreren Währungen brauche ich eine Abbildungstabelle. Und sonst?
ein Datentyp mit zwei "festen" Nachkommastellen wie 'numeric (18, 2)' in TSQL bildet die Realitaet (steinhaeutig ideologisch betrachtet m.E.) besser ab als ein 'int'. Ich weise wiederum auf die Gewohnheit einiger Waehrungen hin im Nachstellenbereich zu "skalieren", also Nachkommastellen zu streichen. Es ist offensichtlich weniger komplex ohne "Skalierungsfaktor" die Daten zu halten.
Gruss,
Lude