PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

PostgreSQL:Welcher Datentyp soll für Währung verwendet werden?

Ihre Quelle ist in keiner Weise offiziell. Es stammt aus dem Jahr 2011 und ich erkenne nicht einmal die Autoren. Wenn der Geldtyp offiziell "entmutigt" wäre, würde PostgreSQL dies im Handbuch angeben - was nicht der Fall ist.

Für eine offiziellere Quelle , lesen Sie diesen Thread in pgsql-general (erst diese Woche!), mit Aussagen von Kernentwicklern, darunter D'Arcy J.M. Cain (ursprünglicher Autor des Geldtyps) und Tom Lane:

Zugehörige Antworten (und Kommentare!) zu Verbesserungen in den letzten Versionen:

  • Jasper-Bericht:Wert für Feld „x“ der Klasse „org.postgresql.util.PGmoney“ kann nicht abgerufen werden

Im Grunde genommen money hat seine (sehr begrenzte) Verwendung. Das Postgres-Wiki schlägt vor, dies weitgehend zu vermeiden, mit Ausnahme dieser eng definierten Fälle. Der Vorteil gegenüber numeric ist Leistung .

decimal ist nur ein Alias ​​für numeric in Postgres und weit verbreitet für monetäre Daten, da es sich um einen Typ mit "beliebiger Genauigkeit" handelt. Das Handbuch:

Der Typ numeric kann Zahlen mit sehr vielen Ziffern speichern. Es wird besonders zum Speichern von Geldbeträgen und anderen Mengen empfohlen, bei denen Genauigkeit erforderlich ist.

Ich persönlich speichere Währungen gerne als integer stellt Cent dar, wenn Bruchteile von Cent nie vorkommen (im Grunde dort, wo Geld Sinn macht). Das ist effizienter als alle anderen der genannten Optionen.