Моделирование валюты в базе данных - PullRequest
5 голосов
/ 04 декабря 2009

Очень наивный вопрос. Мне нужно хранить валюту в базе данных. И значение, и код. Чтобы решить эту проблему, люди обычно делают 2 столбца, один хранит значение, а другой - код? Или я могу использовать встроенный тип?

-Спасибо

Ответы [ 4 ]

7 голосов
/ 04 декабря 2009

Вам нужно будет использовать два столбца. Я бы хранил денежную сумму в одном столбце и код альфа-валюты в другом столбце. В некоторых случаях у вас будет несколько сумм в одной строке. например Сумма доставки и сумма налога могут быть указаны в счете-фактуре. Вам нужно будет решить, будут ли они использовать одну и ту же валюту или вам нужны два столбца.

Вы должны использовать стандарт ISO коды валют.

1 голос
/ 04 декабря 2009

Некоторые базы данных имеют тип Money, который можно использовать для хранения значения. Однако, если вы хотите сохранить код (вы имеете в виду доллары, евро и т. Д.), Вам нужно будет использовать второй столбец.

Обновление: В PostgreSQL есть денежный тип , хотя похоже, что он будет поддерживать только один тип валюты, поэтому он все еще не соответствует вашим потребностям.

0 голосов
/ 04 декабря 2009

Там могут быть инструменты, специфичные для вашей базы данных. В общем, я думаю, что хранение валюты в качестве реальной стоимости и индикатора кода валюты. Где-то может быть стандартный список кодов валют, который вы можете использовать, или вы можете просто составить его на основе валют, с которыми, как вы знаете, вы будете иметь дело.

Действительно, если вы хотите указать тип любого типа, вам понадобится столбец для хранения типа.

Люди могут предоставить более конкретную помощь по БД, если вы укажете используемую БД.

0 голосов
/ 04 декабря 2009

Реляционные базы данных, которые я знаю (Oracle, Postgres, MySQL), не имеют встроенной поддержки валют, и я не ожидаю, что другие это сделают. Вам придется сделать это самостоятельно с 2 столбцами.

...