0

PHP で単純なゲーミフィケーション システムをコーディングしたいと考えています。If count >= 5 のようなものは、この人に賞を与えます。各アクションが満たされると、番号付きコードをデータベースに入力することになると思います。次に、実績ボックスに各コードを引き出して、一致するバッジを表示させることができます。

十分に単純に思えますが、問題があります。バッジを獲得したときに、一度だけ人に警告するにはどうすればよいですか? 各バッジの価値にポイントを割り当て、他のアクションにポイントを割り当てるためのアイデアはありますか? すべてのポイントを個々の数値として配列に入力し、それらをすべて sep sql 呼び出しで合計して合計ポイントを表示しますか?

4

1 に答える 1

2

あなたの言いたいことが理解できたと思います。最も簡単な方法は、「レベル」のような報酬システムを実装することだと思います。ポイントの合計数をユーザー フィールド (ユーザー テーブルの「ポイント」という名前の列) として保存し、各増分後にユーザーが新しい賞の資格があるかどうかを確認するだけです。

ユーザーに特定の順序ではなく複数の種類の賞を与えたい場合は、次の構造に基づいたシステムを開発する必要があります。

  • 賞の表(登録されているすべての賞)
  • ユーザーに与えられる賞の表
  • 一意の 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 と対応する支出ポイントを返す必要があります。データベース設計を提供していただければ、完全で正しい選択ステートメントを提供できます。

これが役に立てば幸いです、乾杯!

于 2013-09-24T23:40:07.793 に答える