PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 11/01/2017 12:14:17

marco_bros
Membre

MONEY et TIMESTAMP WITH TIMEZONE types

Bonjour,

Je suis en train d'optimiser une base de donnée de type banque avec différentes valeurs monétaires sur des fuseaux horaires différents.

Actuellement, les valeurs monétaires sont stockés avec le type FLOAT et les valeurs d'heure et de temps sont stocké avec le type TIMESTAMP.
Je m'interroge sur le bon type de donnée à utiliser pour ces 2 types de valeurs. Je pensais utiliser les type MONEY et TIMESTAMP WITH TIMEZONE, mais je vous avous que connais pas les tenants et les aboutissants.

Pouvez vous me dire si c'est un bon choix et m'expliquer pourquoi ?

Je vous remercie !

Hors ligne

#2 11/01/2017 13:23:34

Marc Cousin
Membre

Re : MONEY et TIMESTAMP WITH TIMEZONE types

Évitez le type money, il est plus là dans postgres pour des raisons de compatibilité ascendante avec les anciennes versions.

Par contre, float, pour des valeurs monétaires, c'est souvent embêtant. Je vous conseille plutôt d'utiliser numeric(), si possible en précisant l'échelle (le second chiffre). Float peut entraîner des erreurs d'arrondis dans les sommes, ce qui est très déplaisant pour des données bancaires.

Pour timestamp/timestamp avec timezone: si vous êtes absolument sûr que votre application ne sera utilisée que dans un seul fuseau horaire, vous pouvez vous contenter du timestamp sans timezone (mais il faudra en permanence savoir de quelle timezone il s'agit… vous risquez aussi des bizarreries aux changements d'heures). Sinon, timestamp with timezone est plus sûr.


Marc.

Hors ligne

Pied de page des forums