2013-04-09 3 views
2

Я собираюсь преобразовать столбцы numeric моей схемы базы данных PG 9.2 в money, главным образом из-за преимуществ, которые я вижу (или представляю?) При округлении и форматировании, обрабатываемых на уровне БД , вместо уровня приложения. Будет ли недостаток в этом решении?Использование типа денег PostgreSQL вместо numeric

+1

[«Выход ... зависит от локали»] (http://www.postgresql.org/docs/current/interactive/datatype-money.html), поэтому у вас могут быть * интересные * сюрпризы. Я склонен использовать «числовые» для валюты, но я позволю одному из экспертов сказать больше. –

+1

Я только что узнал о 'precision'' '' '' '' '' '' '' '' '' '' '': я мог бы использовать это вместо 'money'. – cjauvin

+1

Я часто считаю, что полезно создавать псевдо-тип DOMAIN для точности и масштабирования, которые я хочу использовать, и использовать их везде. Он по-прежнему «числовой», поэтому он ведет себя здорово, но он последователен. Явное округление, как правило, разумно. –

ответ

6

Палка с Числовой:

  1. Это быстрее от того, что я слышал

  2. Выход последовательны. То, что это означает, является последовательным. Вопросы о том, следует ли применять округление при хранении или в поиске (или в приложении), вам предоставлены. Есть много случаев, когда на самом деле вы можете захотеть сохранить дробные центы, а числовые - это безопасно.

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

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

+0

Просто быстрое обновление, № 1 неверно, основным преимуществом типа денег является производительность. Сказав, что у него довольно много проблем, для подробного ответа на вопрос http://stackoverflow.com/a/15729573/227225 –

1

Я переношу MySQL в PostgreSQL. Я решил использовать «Число» вместо «Деньги», потому что: - 1) Деньги чувствительны к местным лицам, что означает, что невозможно иметь 2 валюты по умолчанию, если нам нужно. 2) Цифра может быть отброшена в Деньги, если я хочу, чтобы она функционировала как деньги.

 Смежные вопросы

  • Нет связанных вопросов^_^