2009-12-04 10 views
5

Una pregunta muy ingenua. Necesito almacenar moneda en la base de datos. Tanto el valor como el código. Para resolver esto, ¿las personas generalmente hacen 2 columnas, una almacenando el valor y otras el código? ¿O hay un tipo incorporado que puedo usar?Modelado de divisas en la base de datos

-gracias

Respuesta

0

Las bases de datos relacionales que conozco (Oracle, PostgreSQL, MySQL) no tienen soporte integrado de la moneda, y no esperan que se hacen otros. Tendrá que hacerlo usted mismo con 2 columnas.

+0

postgresql tiene un tipo de 'dinero' - http://www.postgresql.org/docs/8.3/static/datatype-money.html – warren

+0

De hecho, tiene ese tipo, pero no veo cómo se puede especificar la moneda en sí; la documentación solo menciona la visualización específica del lugar. – FelixM

0

Puede haber herramientas específicas para su db. En general, creo que almacenar la moneda como un valor real y un indicador de código de moneda. Es posible que haya una lista de códigos de divisas estandarizada en algún lugar que pueda usar o puede crear una en función de las monedas que sabe que va a tratar.

Realmente, si desea indicar un tipo de cualquier tipo, necesitará una columna para almacenar el tipo.

Es posible que las personas puedan proporcionar más ayuda específica de DB si indica la base de datos que está utilizando.

+1

http://en.wikipedia.org/wiki/ISO_4217 es una excelente lista de códigos de moneda estandarizada. –

1

Algunas bases de datos tienen un tipo de dinero, que se puede usar para almacenar el valor. Sin embargo, si desea almacenar un código (¿quiere decir dólares, euros, etc.?), Entonces necesitaría usar una segunda columna.

Actualización: PostgreSQL does have a money type, aunque parece que solo admitiría un tipo de moneda, por lo que todavía no satisface sus necesidades.

+0

Sí, uso postgresql pero uso numérico para almacenar dinero ya que quiero usar 3 decimales. Solo manejarlo tú mismo da la mayoría de las opciones. –

+0

¡Puede configurar la precisión del tipo de datos money en PostgreSQL especificando el parámetro lc_monetary! – Daniel

7

Tendrá que usar dos columnas. Guardaría el monto monetario en una columna y el código de moneda alfa en otra columna. En algunos casos, tendrá múltiples cantidades en una sola fila. p.ej. el monto del envío y el monto del impuesto pueden estar ambos en el registro de la factura. Tendrá que decidir si compartirán la misma moneda o si necesita dos columnas.

Debe utilizar los códigos de moneda ISO standard.

Cuestiones relacionadas