首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数据库数据不一致

数据库数据不一致
EN

Stack Overflow用户
提问于 2011-05-27 00:10:15
回答 1查看 137关注 0票数 0

我的数据库中有三个表BILL,RECHARGE AND SENT.The BILL表具有名为UNITBALS的列,RECHARGE表具有名为UNITS的列SENT表具有名为VOLUME.What的列通常应该发生的情况是,当客户对其帐户进行充值时,他的新UNITS将与其D9表上的旧UNITS相加,D11表上发送的全部消息的D10将从D13表上的D12和中减去结果将用于更新BILL table.But上的UNITBALS,现在的问题是,当客户充值他们的帐户时,账单表上的UNITBALS被更新为新的余额,或者有时UNITBALS被更新为比它应该更高的值。be.There现在在我的数据库中是一种不一致,客户正在抱怨。

EN

回答 1

Stack Overflow用户

发布于 2011-05-27 00:38:37

因此,据我所知,您正在将聚合计算的结果存储在BILL.UNITBALS上

具体来说

BILL.UNITBALS = SUM(RECHARGE.UNITS) - SUM(SENT.VOLUME)

除非你犯了一个严重的错误,否则可能发生的事情是由于一个挂起的事务和transaction isolation level,你丢失了一个你应该考虑的值。

由于这个问题,我尝试并尽我所能避免在数据库中存储计算结果

通常,这意味着我每次检索数据时都要进行计算。这可能是(也可能不是)性能问题,但至少您获得了更多获取正确信息的机会。

如果性能惩罚太高,那么我建议您每24小时进行一次对账,并添加免责声明,如“付款将在X个工作日内不会出现在您的帐户上”。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6141652

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档