存储/选择monetory值(信用卡/借记卡)mysql

时间:2013-09-20 16:12:33

标签: php mysql sql

我在mysql数据库中存储货币值。信用卡存储为20.00,而借记卡存储为-5.00。然后我需要当前的余额,所以

Select Sum(amount) 

在这种情况下给我15.00

示例表1

uid  amt
1    20
1    -5

示例表2

uid  amt type
1    20   crd
1    5    dbt

然后在账户历史的情况下,我可以

select * from amount

因为这是监控值,并且因为像mysql这样的数据库系统时不时地折旧功能,我担心如果这是正确的做事方式,我还想添加另一个可能表示交易类型的字段,如< / p>

crd for credit
dbt for debit
etc

您的建议/最佳方式是什么?

1 个答案:

答案 0 :(得分:2)

对于我来说,将数据按原样存储(即显式)并使用负数会更有意义。如果你使用无符号小数并存储类型,你仍然可以这样做。

SELECT SUM(IF(type = 'dbt', -1 * amount, amount))