Su fuente no es de ninguna manera oficial. Data de 2011 y ni siquiera reconozco a los autores. Si el tipo de dinero fuera oficialmente "desaconsejado", PostgreSQL lo diría en el manual, lo cual no es así.
Para una fuente más oficial , lea este hilo en pgsql-general (¡solo de esta semana!), con declaraciones de desarrolladores principales, incluidos D'Arcy J.M. Cain (autor original del tipo de dinero) y Tom Lane:
Respuesta relacionada (¡y comentarios!) sobre mejoras en versiones recientes:
- Informe de Jasper:no se pudo obtener el valor del campo 'x' de la clase 'org.postgresql.util.PGmoney'
Básicamente, money
tiene sus usos (muy limitados). Postgres Wiki sugiere evitarlo en gran medida, excepto en aquellos casos estrictamente definidos. La ventaja sobre numeric
es rendimiento .
decimal
es solo un alias para numeric
en Postgres, y muy utilizado para datos monetarios, siendo un tipo de "precisión arbitraria". El manual:
El tipo numeric
puede almacenar números con una gran cantidad de dígitos. Está especialmente recomendado para almacenar cantidades monetarias y otras cantidades donde se requiere exactitud.
Personalmente, me gusta almacenar la moneda como integer
representando centavos si nunca ocurren centavos fraccionarios (básicamente donde el dinero tiene sentido). Eso es más eficiente que cualquier otra de las opciones mencionadas.