ユーザーがさまざまな通貨形式で値を入力できるようにするアプリケーションを構築しています。
私の最初のアイデアは、データを次の形式で保存することでした。
- 金額-文字列
- 通貨-ISO4217通貨コードの文字列(GBP、USD、RUBなど)
この設計は良い考えですか、それとも金額フィールド、整数、小数、または浮動小数点型に使用する必要がありますか?
さまざまなスタイルのフォーマットがストレージにどのように影響するかわからない。
ユーザーがさまざまな通貨形式で値を入力できるようにするアプリケーションを構築しています。
私の最初のアイデアは、データを次の形式で保存することでした。
この設計は良い考えですか、それとも金額フィールド、整数、小数、または浮動小数点型に使用する必要がありますか?
さまざまなスタイルのフォーマットがストレージにどのように影響するかわからない。
私の投票は次のとおりです。
DECIMAL(18,4)
-> もちろん、必要なものに応じてサイズを変更できます。必要な小数点以下の桁数を教えてくれるほど通貨をよく知らないので、4 にすることにしました。少なくとも 3 桁まで存在することがわかっています ( iPhone-SDK のさまざまな国の「通貨の小数点以下の桁数」を参照してください) 。FK 参照と通貨テーブルを使用する理由 次に、各通貨とともにさらに多くの情報 (関連する文化やフォーマット情報など) を保存したり、必要に応じて為替レートを含むテーブルを追加したりして、すべてを 1 つの基本通貨に追加できます。
その上、最近のストレージは安価です。
ノート:
金額の文字列は使用しません。単純に、金額を追加することも注文することもできません (簡単に)。また、金額が実際に数値であるという組み込みの検証も失われます。
金額は正確であるはずなので、金額のフロートも使用しません。すべての結果を表示するために四捨五入する必要はありません。間違った方向に 1 セントずれていたらどうしますか?