【问题标题】:SQL Server Billing Implementation - The Current BalanceSQL Server 计费实施 - 当前余额
【发布时间】:2013-05-22 15:03:22
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

    标签: sql sql-server-2008 payment billing


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 对我来说似乎是一个“duh”,但这个论坛上几个类似问题的答案从未暗示过这一点。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-15
    • 1970-01-01
    • 1970-01-01
    • 2013-02-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多