我应该以正数还是负数存储退款记录?
Should I store refund records in positive or negative amount?
我正在向资深金融程序员寻求最佳实践。
例如 PSUDO 代码:
class Transaction(Model):
order = ForeignKey()
amount = DecimalField()
type = 'refund' or 'purchase'
如果以负数存储退款,那么我可以简单地 运行 sum()
所有交易来获得余额,数学运算变得有点原生。
如果以正数存储退款,那么在像purchase - refund = balance
这样的公式上更人性化,而且我不需要反转以在模板中显示正数退款。
我应该选择哪一个好处最多,陷阱更少?
一种方法是使用一个 amount
字段将值保存为正值,另一个字段如 signedAmount
保存它的签名版本。所以,当你想显示或记录它时,你使用 amount
,当你想将它包含在计算中时,你使用 signedAmount
.
我正在向资深金融程序员寻求最佳实践。
例如 PSUDO 代码:
class Transaction(Model):
order = ForeignKey()
amount = DecimalField()
type = 'refund' or 'purchase'
如果以负数存储退款,那么我可以简单地 运行 sum()
所有交易来获得余额,数学运算变得有点原生。
如果以正数存储退款,那么在像purchase - refund = balance
这样的公式上更人性化,而且我不需要反转以在模板中显示正数退款。
我应该选择哪一个好处最多,陷阱更少?
一种方法是使用一个 amount
字段将值保存为正值,另一个字段如 signedAmount
保存它的签名版本。所以,当你想显示或记录它时,你使用 amount
,当你想将它包含在计算中时,你使用 signedAmount
.