我应该以正数还是负数存储退款记录?

时间:2015-05-12 01:24:56

标签: finance

我要求资深金融程序员提供最佳实践。

例如PSUDO代码:

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

如果以负数存储退款,那么我只需运行所有交易的sum()即可获得余额,数学运算会变得有点原生。

如果以正数存储退款,那么它对purchase - refund = balance这样的公式更加人性化,我也不需要反转以在模板中显示正数退款。

我应该选哪一个才能获得最大的收益和更少的陷阱?

1 个答案:

答案 0 :(得分:3)

一种方法是将amount字段保存为正数,将另一个字段保存为signedAmount,以保存其签名版本。因此,当您想要显示或记录它时,请使用amount,如果您想将其包含在计算中,请使用signedAmount