2009-12-04 6 views
5

非常に素朴な質問です。私はデータベースに通貨を保存する必要があります。値とコードの両方。これを解決するには、一般に2つの列を作成します.1つは値と他のコードを格納します。それとも、私が使うことができる組み込みタイプはありますか?私が知っているデータベースの通貨モデリング

-thanks

答えて

0

リレーショナルデータベース(オラクル、Postgresのは、MySQLは)通貨のサポートを内蔵していないし、私は他のものがそう期待しないでください。あなたは2列でそれを自分で行わなければなりません。

+0

postgresqlには「お金」タイプがあります - http://www.postgresql.org/docs/8.3/static/datatype-money.html – warren

+0

それは実際にそのタイプを持っていますが、私はあなたが通貨自体を指定します。ドキュメントにはロケール固有の表示が記載されています。 – FelixM

0

データベース固有のツールがある場合があります。一般的には、通貨を実際の価値と通貨コードの指標として保管すると思います。あなたが使用できる標準化された通貨コードリストがあるかもしれませんし、あなたが扱うことがわかっている通貨に基づいて通貨コードを作ることもできます。

本当に任意の種類の型を指定する場合は、型を格納する列が必要です。

使用しているDBを指定すると、より多くのDB固有のヘルプを提供できる場合があります。

+1

http://en.wikipedia.org/wiki/ISO_4217は優れた標準化された通貨コードリストです。 –

1

一部のデータベースには、値を格納するために使用できるMoneyタイプがあります。しかし、コードを格納する場合(ドル、ユーロなどを意味します)、2番目の列を使用する必要があります。

更新:PostgreSQL does have a money typeただし、1種類の通貨しかサポートしていないようですが、まだあなたのニーズを満たしていないようです。

+0

ええ、私はpostgresqlを使用しますが、小数点以下3桁を使用したいので、私はmoneyを格納するために数値を使用します。自分で処理するだけで、ほとんどのオプションが得られます。 –

+0

lc_monetaryパラメータを指定すると、PostgreSQLのmoneyデータ型の精度を設定できます。 – Daniel

7

2つの列を使用する必要があります。ある列に金額を、別の列にアルファ通貨コードを格納します。場合によっては、1つの行に複数の金額が表示されます。例えば出荷額と税額は両方とも請求書レコードに記載されている場合があります。これらが同じ通貨を共有するかどうか、または2つの列が必要かどうかを判断する必要があります。

通貨コードはISO standardです。