私は「間違い探し」マルチプレイヤーゲームを構築しています。
ゲームの仕様は次のとおりです。
- 各ゲームには最大10人のプレーヤーが参加できます。
- ユーザーは同じ画像を2回見ないようにする必要があります。
(画像は4つの画像で構成されており、ユーザーはそれらの「違いを見つける」必要があります)。
私は何千枚、場合によっては何万枚もの写真から選ぶことができます。私が直面している問題は、ゲームプレーヤーの誰もまだ見たことがない画像を見つけるための、非常に非効率的でスケーラブルでない方法です。
私のデータベースにはusage table
、次のフィールドを持つがあります。
- picture_id
- ユーザーID
私の現在の解決策は次のとおりです:
ユーザーがゲームに参加し、アプリはそのユーザーの使用状況テーブルに表示されない画像をデータベースから選択し、入力したユーザーごとに同じ機能を実行して、同じゲームの他のユーザーがすでに見た画像の値を追加します。
数万枚の写真のデータベースがあり、以前のゲームで使用量テーブルがすでにいっぱいになっていると、機能に時間がかかりすぎてゲームの流れが損なわれるのではないかと心配しています。
この方法はあまりスケーラブルではなく、多くのゲームがプレイされていることを意味する一定のトラフィックのかなり安定した流れを期待しています。
このロジックを改善する方法や、データベース構造を改善するための提案はありますか?