0

我分配到的当前系统没有客户购买、存款和奖励积分(由管理员)的记录——只有用户表中的一个积分列。每次用户存款时,该列都会增加。如果他们在网站上购买东西,他们的信用就会被扣除。

完整的计费实施细节现在并不那么重要,但我知道我们必须以某种方式计算购买和存款才能达到当前余额。

每次我们想知道客户的余额时,我认为我们必须运行一个存储过程来计算自客户第一次交易以来的每条付款/存款记录,对吧?如果是这样,那么这似乎是一个非常繁重的请求,尤其是在经常查询的情况下。

可能有一些“平衡的方法”,我们可以像现在一样存储余额,并且定期(我猜是通过调度)使用上面提到的存储过程重新计算每个用户的余额。

我想知道管理用户余额的最佳做法是什么。如果在这种情况下可能的话,我会同时争取一致/正确的数据和效率。你有什么建议?

实施计费系统有哪些资源?

4

1 回答 1

2

为什么不存储当前余额和交易列表?

发生交易时,向交易历史表写入一行,同时更新客户余额列。

如果您需要客户余额,请查看客户表,如果您需要交易历史,请查看交易历史表。

您可以通过将两个数据库写入(事务和客户)包装在原子事务中来保证一致性。

于 2013-05-22T15:14:21.280 回答