【mysql】如何设计 用户钱包金额收支记录表?
我想做一个对于
用户钱包金额收支情况记录的表
就是对于
money1(买家金额)money2(买家冻结金额)
money3(卖家金额)money4(卖家冻结金额)
这个四个字段,所有的加减都要有个记录,
该怎么设计表好呢?
有什么必须的字段,要求?
求经验丰富的人推荐下设计方案?
能不能根据数据库的变动做一个记录?就是当用户表的 金额字段发生变化时,把其变化存入一个新的表里?
我用的是MySQL数据库,是不是得使用触发器?
回答
不妨借用会计记账的方式。
每个客户分配3个科目:
存入取出金额 = 可用金额 + 冻结金额
。创建资金流水表(会计分录)和科目余额表两个表。后者用于对流水表进行汇总。
可用(冻结)余额的计算方法是:
今日余额 = 昨日余额 + 今日借方总额 - 今日贷方总额
。存入取出余额的计算方法是:
今日余额 = 昨日余额 + 今日贷方总额 - 今日借方总额
。
资金流水表例:
借方 | 贷方 | 金额 | 时间 | 事由 |
---|---|---|---|---|
XXX可用 | XXX存入取出 | 3000 | 2017-02-09 | 客户XXX存入3000元 |
YYY可用 | XXX可用 | 2000 | 2017-02-09 | 客户XXX给YYY转账2000元 |
YYY冻结 | YYY可用 | 1000 | 2017-02-09 | 客户YYY冻结1000元 |
余额表例:
科目 | 金额 | 时间 | |
---|---|---|---|
XXX存入取出 | 3000 | 2017-02-09 | |
XXX可用 | 1000 | 2017-02-09 | |
YYY可用 | 1000 | 2017-02-09 | |
YYY冻结 | 1000 | 2017-02-09 |
用户的账户余额可以计算出来,也可以通过每次交易后更新来实现,看你自己的取舍了
楼主,找到了解决方案吗?我也遇到这问题,记录太多。如何优化设计
以上是 【mysql】如何设计 用户钱包金额收支记录表? 的全部内容, 来源链接: utcz.com/a/73235.html