私はリアルマネーでオンライン ゲームを扱う複雑な Web サイトを持っています。私はトランザクションに複式エントリのデータベース設計を使用しています。簡単な例は次のとおりです。
ジョンが $5 を入金 ジョンが 5000 クレジットを受け取る ジョンはその 5000 クレジットを使ってゲームをプレイします。
データベース内のトランザクションは次のようになります。
trans_id | account_id | trans_type | date | amount |
-----------------------------------------------------
1 | John(PayPal)| Debit | date | -5.00 |
2 | System | Credit | date | 5.00 |
3 | SystemGame | Debit | date | -5000 |
4 | JohnGame | Credit | date | 5000 |
トランザクション 1 と 2、John の PayPal アカウントからの借方、およびシステム アカウントへの貸方を挿入するトランザクションを含むストアド プロシージャを作成しました。
私の質問は、John が SystemGame アカウントから彼の Game アカウントに送金した他のトランザクションも含めるべきですか? または、トランザクションのグループごとにストアド プロシージャを用意する必要がありますか? 4 つの取引はすべて同時に行われ、John は $5 を入金した直後に入金されます。
また、ゲーム クレジットのトランザクション テーブルをリアルマネーのトランザクション テーブルから分離する必要がありますか?