2013-05-22 53 views
0

我分配给的当前系统没有客户购买,存款和奖励积分(由管理员)记录 - 只是用户表中的信用列。每次用户存款时,该列都会增加。如果他们在网站上购买一些东西,他们的信用就会被扣除。SQL Server计费实施 - 当前余额

完整的计费实施细节现在并不那么重要,但我知道我们不知何故必须计算出购买和存款才能达到目前的余额。

每次我们想知道客户的余额时,我想我们必须运行一个存储过程来计算自客户第一笔交易以来的每笔支付/存款记录,对吗?如果是这样,那么这似乎是一个相当沉重的要求,特别是如果经常查询。

可能存在一些“平衡方法”,我们可以按照我们当前的方式存储余额,并且常规(通过调度,我猜)通过上述存储过程重新计算每个用户的余额。

我想知道管理用户余额的最佳实践。如果在这种情况下甚至有可能实现一致/正确的数据和效率,我就会拍摄。你有什么建议?

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

回答

2

为什么不存储当前余额和交易清单?

当发生交易时,向交易历史记录表中写入一行,并更新客户余额列。

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

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

+0

就我而言似乎是一个“嘟嘟嘟”,但在这个论坛上的几个类似问题的答案从来没有提出过这个问题。谢谢。 –