2009-12-04 74 views
5

一個非常天真的問題。我需要在數據庫中存儲貨幣。價值和代碼。爲了解決這個問題,人們通常做2列,一個存儲值和其他代碼?或者是否有我可以使用的內置類型?數據庫中的貨幣建模

-Thanks

回答

0

的關係數據庫,我知道(甲骨文,Postgres的,MySQL的)不具有內置的貨幣支持,我不希望任何人這樣做。你將不得不自己做2列。

+0

postgresql確實有'錢'類型 - http://www.postgresql.org/docs/8.3/static/datatype-money.html – warren

+0

確實有這種類型,但我不明白你怎麼能指定貨幣本身;該文檔只提到了特定於語言環境的顯示。 – FelixM

0

可能存在特定於您的數據庫的工具。一般來說,我認爲將貨幣存儲爲實際價值和貨幣代碼指標。可以在某個地方使用標準化的貨幣代碼清單,或者您可以根據您將知道處理的貨幣進行調整。

真的,如果你想表明任何類型的類型,你將需要一個列來存儲類型。

如果您指出您正在使用的數據庫,人們可能會提供更多的數據庫特定幫助。

+1

http://en.wikipedia.org/wiki/ISO_4217是一個優秀的標準貨幣代碼清單。 –

1

某些數據庫具有Money類型,可用於存儲該值。然而,如果你想存儲一個代碼(你的意思是美元,歐元等?),那麼你需要使用第二列。

更新:PostgreSQL does have a money type,雖然它看起來只會支持一種貨幣,所以它仍然不能真正滿足您的需求。

+0

是的,我使用postgresql,但我使用數字來存儲錢,因爲我想使用3位小數。只是自己處理它給出了最多的選擇。 –

+0

您可以通過指定lc_monetary參數來配置PostgreSQL中的money數據類型的精度! – Daniel

7

您將需要使用兩列。我會將貨幣金額存儲在一列中,並將阿爾法貨幣代碼存儲在另一列中。在某些情況下,您將在單個行上有多個金額。例如運輸金額和稅額都可以在發票記錄上。您需要決定這些貨幣是共用同一種貨幣還是需要兩列。

您應該使用ISO standard貨幣代碼。