La tua fonte non è in alcun modo ufficiale. Risale al 2011 e non riconosco nemmeno gli autori. Se il tipo di denaro fosse ufficialmente "scoraggiato", PostgreSQL lo direbbe nel manuale, ma non è così.
Per una fonte più ufficiale , leggi questo thread in pgsql-general (di questa settimana!), con dichiarazioni di sviluppatori principali tra cui D'Arcy J.M. Cain (autore originale del tipo di denaro) e Tom Lane:
Risposta correlata (e commenti!) sui miglioramenti nelle versioni recenti:
- Rapporto Jasper:impossibile ottenere il valore per il campo 'x' della classe 'org.postgresql.util.PGmoney'
Fondamentalmente, money
ha i suoi (molto limitati) usi. Il Wiki di Postgres suggerisce di evitarlo in gran parte, ad eccezione di quei casi strettamente definiti. Il vantaggio rispetto a numeric
è prestazioni .
decimal
è solo un alias per numeric
in Postgres e ampiamente utilizzato per i dati monetari, essendo un tipo di "precisione arbitraria". Il manuale:
Il tipo numeric
può memorizzare numeri con un numero molto elevato di cifre. È particolarmente consigliato per la memorizzazione di importi monetari e altre quantità in cui è richiesta l'esattezza.
Personalmente, mi piace memorizzare la valuta come integer
che rappresentano i centesimi se i centesimi frazionari non si verificano mai (in pratica dove il denaro ha senso). È più efficiente di qualsiasi altra delle opzioni menzionate.