4

MySQL DB 内に通貨の値と記号を保存する最良の方法は何だろうか?

SOをブラウジングしたおかげで、金額を 10 進数 (19,2) 値として保存していますが、これは問題ありませんが、許可したいので、通貨記号 (€、£、$ など) に関心があります。エンド ユーザーは、設定段階で独自の通貨単位を設定できます。また、現在utf8(両側)に設定されている不確実性を避けたいと思っています。

私が現時点で行っている方法は、PHP ステートメントを使用してHTML 数値コードifelseとして保存し、入力をフィルタリングすることです。これが最善の方法ですか?そうでない場合、何ですか?まったく必要がありますか?事前に多くの感謝を!

4

4 に答える 4

4

私見、データを2つの列に分割できます

amount      = decimal(19,2) --- question : unsigned for positive value only
currency_id = int(10) unsigned --- which is ID to currency table

currencyフィールドが別のテーブルへの参照である場合、
あらゆる種類の追加情報 (為替レートなど) をそのテーブルに保存して
、シンボルをどのように表示するかをより適切に説明できます。

于 2011-08-03T10:54:26.843 に答える
3

を使用して、character (3)代わりに通貨コードを保存します ( http://en.wikipedia.org/wiki/ISO_4217#Active_codes )。たとえば、EUR、USD、GBP など、表示時に適切なシンボルのみを表示します。

于 2011-08-03T10:52:52.423 に答える
1

ユーザーの選択に基づいて通貨を変換する必要がありますか? はいの場合は、通貨記号と為替レートを格納するための新しいテーブルを作成できます。

ユーザーのロケールに基づいて通貨を表示したいだけの場合は、国際化ライブラリを試すことができます。

于 2011-08-03T10:54:09.713 に答える
1

記号をまったく使用せず、代わりにISO 4217の 3 文字コードを使用することを検討しましたか?

必要に応じて、別のテーブルを使用して、これらのテーブルからより使いやすいシンボル形式へのマッピングを出力で処理します。

于 2011-08-03T10:52:26.457 に答える