2015-05-12 14 views
5

Tôi yêu cầu thực hành tốt nhất từ ​​các lập trình viên tài chính kỳ cựu.Tôi có nên lưu trữ hồ sơ hoàn tiền với số tiền dương hoặc âm?

ví dụ đang psudo:

class Transaction(Model): 
    order = ForeignKey() 
    amount = DecimalField() 
    type = 'refund' or 'purchase' 

Nếu lưu trữ hoàn lại tiền trong lượng tiêu cực, sau đó tôi chỉ đơn giản là có thể chạy sum() của tất cả các giao dịch để có được sự cân bằng, hoạt động toán học trở thành một chút bản địa.

Nếu lưu trữ tiền hoàn lại với số tiền dương, thì sẽ thân thiện hơn với con người theo công thức như purchase - refund = balance, tôi cũng không cần đảo ngược để hiển thị số tiền hoàn lại trong mẫu.

Tôi nên chọn cái nào để mang lại nhiều lợi ích nhất và ít gotchas hơn?

+0

Khoản tiền hoàn lại là số tiền dương. –

+0

Bạn dự định sử dụng tiền hoàn lại và mua hàng như thế nào? –

+0

@DaveNewton - Tại sao khoản tiền hoàn lại nhất thiết phải là số tiền dương? Từ quan điểm của khách hàng, họ có thể là tích cực. Nhưng từ quan điểm của doanh nghiệp họ chắc chắn là tiêu cực. – HappyNomad

Trả lời

3

Một cách tiếp cận là có trường amount giữ giá trị là dương và trường khác như signedAmount giữ phiên bản đã ký của nó. Vì vậy, khi bạn muốn hiển thị hoặc đăng nhập nó, bạn sử dụng amount, khi bạn muốn bao gồm nó trong một phép tính bạn sử dụng signedAmount.

Các vấn đề liên quan