PostgreSQL データベースを学び、組み込みの通貨データ型を使用しない2022-08-13

https://wiki.postgresql.org/wiki/Don%27t_Do_This#Don.27t_use_money

お金を使わないでください

<tt style="font-family: monospace, monospace;">money</tt> データ型は、実際には通貨値の保存にはあまり適していません。数値、または (まれに) 整数の方が適切な場合があります。

なぜだめですか?

たくさんの理由があります。

これは固定小数点型であり、machine int として実装されているため、演算が高速です。ただし、セント未満の端数 (または他の通貨の相当額) は処理されません。丸め動作はおそらくあなたが望むものではありません。

通貨を値とともに保存するのではなく、すべての Money 列にデータベースのlc_monetaryロケール設定で指定された通貨が含まれていると想定します。何らかの理由で lc_monetary 設定を変更すると、すべての Money 列に間違った値が含まれます。つまり、lc_monetary が「en_US.UTF-8」に設定されているときに「$10.00」を挿入すると、取得される値は「10,00 レイ」または lc_monetary が変更されている場合は「¥1,000」になる可能性があります。

値を数値として保存し、隣接する列で通貨を使用する方がよい場合があります。

いつ行うべきですか?

単一の通貨のみを使用し、セントの小数部分を処理せず、足し算と引き算だけを行う場合は、お金が正しいかもしれません。

おすすめ

転載: blog.csdn.net/liuqun69/article/details/127317248