Nguồn của bạn không phải là chính thức. Nó có từ năm 2011 và tôi thậm chí không nhận ra các tác giả. Nếu loại tiền được chính thức "không khuyến khích" thì PostgreSQL sẽ nói như vậy trong hướng dẫn - điều mà không phải.
Để có nguồn chính thức hơn , hãy đọc chủ đề này trong pgsql-general (chỉ từ tuần này!), với các tuyên bố từ các nhà phát triển cốt lõi bao gồm D'Arcy J.M. Cain (tác giả gốc của loại tiền) và Tom Lane:
Câu trả lời liên quan (và nhận xét!) Về những cải tiến trong các bản phát hành gần đây:
- Báo cáo Jasper:không thể nhận giá trị cho trường 'x' của lớp 'org.postgresql.util.PGmoney'
Về cơ bản, money
có (rất hạn chế) sử dụng của nó. Postgres Wiki đề nghị phần lớn tránh nó, ngoại trừ những trường hợp được xác định hẹp. Lợi thế so với numeric
là hiệu suất .
decimal
chỉ là bí danh cho numeric
trong Postgres và được sử dụng rộng rãi cho dữ liệu tiền tệ, là loại "độ chính xác tùy ý". Hướng dẫn sử dụng:
Loại
numeric
có thể lưu trữ các số với một số lượng rất lớn các chữ số. Nó đặc biệt được khuyến khích để lưu trữ các số tiền và các định lượng khác khi yêu cầu độ chính xác.
Cá nhân tôi muốn lưu trữ tiền tệ dưới dạng integer
đại diện cho Cents nếu Cents phân số không bao giờ xảy ra (về cơ bản khi tiền có ý nghĩa). Điều đó hiệu quả hơn bất kỳ tùy chọn nào khác trong số các tùy chọn đã đề cập.