Votre source n'est en aucun cas officielle. Il date de 2011 et je ne reconnais même pas les auteurs. Si le type d'argent était officiellement "déconseillé", PostgreSQL le dirait dans le manuel - ce qui n'est pas le cas.
Pour une source plus officielle , lisez ce fil de discussion dans pgsql-general (depuis cette semaine !), avec des déclarations de développeurs principaux, dont D'Arcy J.M. Cain (auteur original du type d'argent) et Tom Lane :
Réponse connexe (et commentaires !) sur les améliorations apportées aux versions récentes :
- Rapport Jasper :impossible d'obtenir la valeur du champ 'x' de la classe 'org.postgresql.util.PGmoney'
Fondamentalement, money
a ses usages (très limités). Le Postgres Wiki suggère de l'éviter en grande partie, sauf pour les cas étroitement définis. L'avantage par rapport au numeric
est la performance .
decimal
est juste un alias pour numeric
dans Postgres, et largement utilisé pour les données monétaires, étant de type "précision arbitraire". Le manuel :
Le type
numeric
peut stocker des nombres avec un très grand nombre de chiffres. Il est particulièrement recommandé pour stocker des montants monétaires et d'autres quantités où l'exactitude est requise.
Personnellement, j'aime stocker la devise en tant que integer
représentant les cents si les cents fractionnaires ne se produisent jamais (essentiellement là où l'argent a du sens). C'est plus efficace que n'importe quelle autre des options mentionnées.