0

多くのユーザーがいるアプリ(モノポリーゲーム)があり、各ユーザーがバランスを取り、ユーザー間でトランザクションを行っているとします。

すべてのユーザー(userID、名前、電子メール)を含むテーブルと、すべてのトランザクションとそれらを実行したユーザー(user1、user 2、amount)を含むテーブルがあります。

ここで、各ユーザーの残高を提示する必要がある場合、usersテーブルに各ユーザーの残高を保持し、トランザクションが行われるたびに更新する方がよいでしょうか。それとも、トランザクションテーブルから計算する必要があります。それを提示するには?このゲームには大量のトラフィックがあると想定します。それでは、10,000人以上のユーザーと1週間あたり約120,000以上のトランザクションに対して、より合理的なアプローチは何でしょうか。

4

1 に答える 1

0

値はトランザクションテーブルのクエリで計算できるため、ユーザーテーブルに新しい列のバランスを設定することは冗長性です。

ただし、DB設計プロセスの1つは、特定のテーブルで発生する可能性のある読み取りと書き込みの数の見積もりです。この見積もりが高い場合、それは論理であり、一部の読み取りまたは書き込みの結果を単純化し、DBに冗長性を持たせて、Webページによって要求される多くの読み取りを提供し、より少ない処理時間で値を表示することができます。

あなたの場合、残高列の更新は、関与する2人のユーザーの残高を計算するトランザクションテーブルのトリガーを使用して実行できます。

于 2012-11-24T15:32:28.823 に答える