如何为铁路上的红宝石用户创造资金平衡?

时间:2018-01-27 13:40:15

标签: ruby-on-rails ruby database model

我有用户模型,我想创建他们与硬币平衡 用户可以为帖子模型花钱 硬币必须 belongs_to:user

发布alredy belongs_to:user 我希望一些用户创建有价格的帖子,不同的用户可以用硬币购买。怎么样?谢谢

1 个答案:

答案 0 :(得分:0)

这个问题很通用,但这可以给你一个开始。

对于单一货币,您可以从围绕这些行的分类帐开始。

Table: coins (user_id, amount, balance, is_void, voided_id, , date_created, date_voided, ...)

First Scenario
1. +10, 10, false, nil, ...dates...
2. +20, 30, false, nil, ...dates...
3. +5,  35, false, nil, ...dates...
4. -1,  34, false, nil, ...dates...


Second Scenario (voided transaction)
1. +10, 10, false, nil, ...dates...
2. +20, 30, false, nil, ...dates...
3. +5,  35, true,  nil, ...dates...
4. -1,  34, false, nil, ...dates...
5. -5,  29, false, 3  , ...dates...

您需要能够协调,因此最后余额应与非无效/已退回交易的总数相匹配(is_void == false和无效==无)

ex. First scenario  10 + 20 + 5 - 1 = 34
    Second scenario 10 + 20 - 1 = 29

确保您的交易是ACID至关重要,这样您就不会遇到竞争条件。并确保它将是最重要的部分,以便交易历史记录准确。这是一个非常重要的话题。