2

データ設計の達人からの集合的な知恵を探しています...

私は、Web ベースのゲーム (基本的には Web アプリ) を作成中です。ゲームのダイナミクスでは、実績を許可/拒否する前にアクセス チェックが必要です。

私のゲームでは、誰がいつ特定の実績にアクセスできるかを細かく制御する必要があります。これらの達成要件はさまざまで、次のいずれかの組み合わせになる可能性があります。

  • ユーザーは何かを表示する必要があります (この訪問情報を格納するテーブルがあります)
  • ユーザーはアクセスが許可されるまで待つ必要があります (たとえば、アカウント作成から 2 週間後に記録にアクセスできるようになります)。
  • ユーザーはイベント (メッセージなど) に応答している必要があります
  • ユーザーは質問に回答している必要があります (例: ゲーム内投票)

ただし、ゲームでは各ゲームマスター用に作成されたカスタム「ユニバース」が許可されているため、これらをハードコードすることはできません。したがって、各ゲームマスターは、自分の「宇宙」で実績が付与される方法を作成/変更できる必要があります。

これらの制限を達成記録に保存できるようにするデータベース設計を考え出すのに苦労しています。この種の情報を保存するための適切な一般的な設計パターンはありますか? 参考になる本やサイトはありますか?

ご意見、ご提案は大歓迎です。

PS。私は Google を試してみましたが、返されたヒットのほとんどは、データベースへのアクセスを制御する方法に関するものであり、この情報を格納するテーブルを設計する方法に関するものではありません。

4

1 に答える 1

0

あなたがしているのは、状態のモデリングです。状態をモデル化する最も一般的な方法は、状態遷移表を使用することです。

            View something | Wait     | Respond | Answer
            ----------------------------------------
User 1        view action  |          | resp act|
User 2                     | wait act |         |
User 3                     |          |         | answer act

などなど。

追加のために編集:テーブルは状態情報のみを保持します。コードは、状態テーブルを設定する方法と、状態または状態の組み合わせが完了したときに何をするかを知っている必要があります。

于 2012-11-27T17:47:23.440 に答える