3

我想知道如何在 SQL 数据库中处理资金以保持一致性。我想这些表格看起来像下面这样。

考虑以下场景:如果有两个玩家在玩,那么他们下注的钱已经从他们俩中扣除balance_usd并添加到pot_usd. 但是假设服务器在牌局中宕机了。这里的数据库的一致性大概意味着pot_usd应该将钱退还给两个玩家,balance_usd从而有效地取消这手牌。似乎单靠交易不能解决这个问题。扑克服务器的后端应该如何构建来处理这个问题?

table user
    user_id
    balance_usd

table game
    game_id
    pot_usd
    ...
4

2 回答 2

0

为了应对这种可能性,您可以有一个表格,CurrentGameStakes其中包含 playerID 和投注金额的字段。然后当手牌结束时,您将总赌注转移给获胜者,如果游戏由于某种原因没有完成,您将赌注金额返还给每个玩家。

于 2012-11-14T09:27:57.387 回答
0

您需要在游戏开始时跟踪 balance_usd 和 pot_usd。如果游戏被取消,那么只需恢复这些值。如果它运行完成,则从您用来跟踪它们的表中清除记录。

于 2012-11-14T09:28:42.710 回答