0

我正在构建一个 Web 应用程序(在 Django 中,虽然这不是 Django 特定的问题)。我将有许多用户,他们每个人都有一个帐户余额,每次他们向我存钱时都会增加(通过 PayPal),每次他们使用我的应用程序的 API 时都会减少。

我正在尝试决定哪种方法更合适:

  1. 将余额与用户一起存储为单个整数字段。当钱进来时,这个字段被添加到。当它出去时,它被减去。简单,但容易出错。
  2. 即时生成余额(可能带有缓存)将用户支付的所有付款和费用相加。触摸更复杂,更慢,但更不容易出错。

那么,这是最好的还是有另一种方法呢?

4

1 回答 1

0

我的观点是,第一个选项比第二个选项更不容易出错。当您开始依赖缓存来获得非常重要的价值时,您必须处理缓存同步。显然,每次用户余额发生变化时,您都需要使缓存无效并确保任何读取请求都是 100% 准确的。如果你确实走缓存路线,你只需要确保额外的层很好地协调。

我建议您同时存储交易历史记录和余额总计。进行交易的行为需要是原子的,以便在其他任何东西可以读取之前执行交易历史记录和余额总计的更新。然后,您始终可以选择将余额与历史记录相协调,或者直接从历史记录中读取和添加。

于 2012-06-17T17:24:16.377 回答