あなたの言いたいことが理解できたと思います。最も簡単な方法は、「レベル」のような報酬システムを実装することだと思います。ポイントの合計数をユーザー フィールド (ユーザー テーブルの「ポイント」という名前の列) として保存し、各増分後にユーザーが新しい賞の資格があるかどうかを確認するだけです。
ユーザーに特定の順序ではなく複数の種類の賞を与えたい場合は、次の構造に基づいたシステムを開発する必要があります。
- 賞の表(登録されているすべての賞)
- ユーザーに与えられる賞の表
- 一意の ID、ユーザー ID、ポイント数、およびユーザーがポイントを取得するイベントを格納するポイントを記録するためのテーブル
次に、基本的な操作を実行するだけで、ユーザーまたはユーザーのクラスが持っているポイントを示すクロステーブル sql select を実行するだけです。
SUM(point awards for the user) - SUM(points for awards received by user).
このような SQL 選択ステートメントを作成してからしばらく経ちましたが、難しくはなく、完全に実行できます。これは次のようになります。
SELECT a.userId,(SUM(a.points) - SUM(b.points_spent)) as 'currentPoints' FROM Awards a, Spendings b WHERE a.userId = b.userID
このステートメントはテストされておらず、完全に間違っている可能性がありますが、これは私が今覚えている限りです. このステートメントは、すべてのユーザーの ID と対応する支出ポイントを返す必要があります。データベース設計を提供していただければ、完全で正しい選択ステートメントを提供できます。
これが役に立てば幸いです、乾杯!