账户余额重算问题

    资金账户,发生支出、收入、转入或转出时,其余额都需要发生变化,这属于最基本的功能。目前,《个人助手》在设计上,采用了两种计算方式:

    1、根据账户的当前操作,计算余额。

    2、根据账户的所有历史操作,计算余额。

    从字面上理解,不难发现,第2种计算方式肯定比第1种方式复杂,耗时更多些。但第2种方式,肯定是最准确的。接下来,我们分析下第1种方式的弊端。

    最理想情况下,第1种方式肯定是准确的。比如从A账户支出30¥,只需要将A账户当前的余额减去30即可;又比如从A账户转出30¥到B账户,那么A账户余额减30,同时B账户余额加30。排除手机此时出现异常的情况,只要之前账户余额正确,那么计算之后的账户余额,也肯定是正确的。

    此算法的关键是,需要知道发生变动的账户和变动的金额。如果能在操作过程中确定这两点,即使是删除收、支、转账记录,其计算过程,也是理论上正确的。

    那么如果,某次操作无法确定这两点呢?没错,这样的操作的确存在。比如,有A、B两个账户,有一条转账记录为:从A转入B账户30¥。此时,修改转账记录,内容改为从B转入A账户30元。我们在保存时,就无法知道,账户的金额变化,应该是如何了。也就是说第1种计算方式,无法实现了。

    可以这样说:

    第1种方式判断过程复杂,计算过程简单,速度快,但存在漏洞。

    第2中方式判断过程简单,计算过程复杂,记录越多速度越慢,计算可以保证准确。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值