如何解决数据库数据不一致
| 我的数据库中有三个表BILL,RECHARGE AND SENT
.BILL
表有一个名为UNITBALS
的列,RECHARGE
表有一个名为UNITS
的列,SENT
表也有一个名为VOLUME
的列。通常应该发生的是,当客户为他的账户充值时,新的UNITS
将与他的旧UNITS
在RECHARGE
桌上的总和相加,并且从RECHARGE
桌上的UNITS
的总和中减去SENT
桌上的已发送消息的VOLUME
的总和,并将结果用于更新UNITBALS
但是现在的问题是,当客户向他们的账户充值时,BILL表上的UNITBALS
会被更新为新余额,或者有时the2ѭ会被更新为比应有的值更高的值。现在在我的数据库中,客户在抱怨。
解决方法
因此,根据我的收集,您正在将汇总计算的结果存储在BILL.UNITBALS上
特别
BILL.UNITBALS = SUM(RECHARGE.UNITS) - SUM(SENT.VOLUME)
除非您犯了一个严重的错误,否则可能是由于挂起的事务和事务隔离级别导致您缺少应考虑的值。
由于这个问题,我尽力避免将计算结果存储在数据库中
通常,这意味着我每次检索数据时都要进行计算。这可能是(也可能不是)性能问题,但至少您有更多机会获得正确的信息。
如果性能罚款过高,那么我建议您每24小时只进行一次对帐,并添加免责声明,例如“您的帐户将在X个工作日内不会显示付款”
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。