7
votes

Modélisation de la monnaie dans la base de données

une question très naïve. J'ai besoin de stocker des devises dans la base de données. La valeur et le code. Pour résoudre ce problème, les gens font-ils généralement 2 colonnes, une stockage de la valeur et d'autres que le code? Ou existe-t-il un type intégré que je puisse utiliser?

-Merci


0 commentaires

4 Réponses :


0
votes

Les bases de données relationnelles que je connais (Oracle, Postgres, MySQL) n'ont pas de soutien à la monnaie intégrée, et je ne m'attends pas aux autres. Vous devrez le faire vous-même avec 2 colonnes.


2 commentaires

PostgreSQL a un type d'argent - Postgresql.org/docs/8.3 /Static/daTaType-Money.html


Il a effectivement ce type, mais je ne vois pas comment vous pouvez spécifier la monnaie elle-même; La documentation mentionne simplement l'affichage spécifique aux paramètres régionaux.



0
votes

Il peut y avoir des outils spécifiques à votre dB. En général, je penserais à stocker la monnaie comme une valeur réelle et un indicateur de code de devise. Il peut y avoir une liste de codes de devise standardisée quelque part que vous pouvez utiliser ou vous pouvez simplement effectuer une position basée sur les devises que vous savez que vous allez traiter.

Vraiment si vous voulez indiquer un type de sorte que vous aurez besoin d'une colonne pour stocker le type.

Les gens pourraient être en mesure de fournir plus d'aide spécifique à la DB si vous indiquez la DB que vous utilisez.


1 commentaires

en.wikipedia.org/wiki/iso_4217 est une excellente liste de codes de devise normalisée.



1
votes

Certaines bases de données ont un type d'argent, qui peut être utilisé pour stocker la valeur. Toutefois, si vous souhaitez stocker un code (voulez-vous dire des dollars, des euros, etc.?) Ensuite, vous auriez besoin d'utiliser une deuxième colonne.

mise à jour: PostgreSQL a un type d'argent , Bien qu'il semble que cela ne soutiendrait qu'un seul type de monnaie afin qu'il ne réponde toujours pas vraiment à vos besoins.


2 commentaires

Oui, j'utilise PostgreSQL mais j'utilise numérique pour stocker de l'argent depuis que je veux utiliser 3 décimales. Juste la manipulation vous-même donne la plus grande options.


Vous pouvez configurer la précision du type de données Money dans PostgreSQL en spécifiant le paramètre LC_MONETARY!



8
votes

Vous devrez utiliser deux colonnes. Je stockerais la quantité monétaire dans une colonne et le code de devise alpha dans une autre colonne. Dans certains cas, vous aurez plusieurs quantités sur une seule ligne. par exemple. Le montant de l'expédition et le montant de l'impôt peuvent tous deux être sur l'enregistrement de facturation. Vous devrez décider si ceux-ci partagent la même devise ou si vous avez besoin de deux colonnes.

Vous devez utiliser ISO Standard Codes de devise.


0 commentaires