メインコンテンツへスキップ

@db.Money の使用

Optimize は、@db.Money 型の使用によって引き起こされるパフォーマンスの問題を特定し、解決するのに役立つ推奨事項を提供します。

次のモデルは、@db.Money ネイティブ型を使用しています。

model Item {
// ...
price Decimal @db.Money
// ...
}

何が問題か?

PostgreSQL の @db.Money データ型は、金額の格納には理想的ではありません。内部的には、@db.Money は整数として実装されており、速度は向上しますが柔軟性に欠けます。端数処理や丸め処理が予期しない方法で行われるため、不正確さを招く可能性があります。

さらに、@db.Money 型は、関連する通貨に関する情報を一切格納しません。代わりに、グローバルな lc_monetary ロケール設定に依存しますが、これはすべてのユースケースに適しているとは限りません。

詳細については、PostgreSQLドキュメントを参照してください。