Using @db.Money
Optimize provides recommendations to help you identify and resolve performance issues caused by the use of @db.Money
type.
The following model uses the @db.Money
native type:
model Item {
// ...
price Decimal @db.Money
// ...
}
What is the problem?
The @db.Money
data type in PostgreSQL is not ideal for storing monetary values. Internally, @db.Money
is implemented as an integer, which offers speed but lacks flexibility. It handles fractional values and rounding in unexpected ways, which can lead to inaccuracies.
Additionally, the @db.Money
type does not store any information about the associated currency. Instead, it relies on the global lc_monetary
locale setting, which may not be suitable for all use cases.
For more information, refer to the PostgreSQL documentation.