2011-09-14 8 views
0

私はメンバーがビデオをアップロードしたり、ビデオにコメントしたり、ビデオを評価したり、フォーラムに投稿したりすることができるウェブサイトを持っています。既存のPHP/MySQLウェブサイトにエクスペリエンスポイント(EXP)を統合していますか?

Iはまた、基本的にカラムが私は各テーブルを持っているboolean1又は0)、であるhidden呼ばれ、例えば、管理者ユーザグループ(に利用できる(節度用)「非表示」機能を持っている;場合隠しは1に設定されていましたが、コンテンツが表示されませんでしたが、コンテンツが表示される0に設定されていた場合)、これは悪用を管理する機能に過ぎません。

私はそれぞれのテーブルを言うとき、私は何を意味しますか。フォーラムのトピックには別個のテーブルがあり、ビデオコンテンツには独自のテーブルなどがありますが、それらのすべて(少なくとも私がその機能を使用したいもの)に共通するものがあります。それらはすべてhidden上記で説明したように)

基本的なEXP(Experience Points)機能を追加して、メンバーが特定のアクションを実行するためにXポイントを獲得できるようにすることを考えています。ビデオをアップロードする、フォーラムにトピックを投稿する、ビデオを評価する、ビデオにコメントするなど

合計のEXPは、メンバープロファイルおよびアクティビティストリームに表示されます(例:Earnt Xトピック)。

しかし、これを実装する方法はわかりません。なぜなら、全体のEXPには、非表示ではなく、アクティビティストリームと同じコンテンツを検討する必要があるからです(隠されていないコンテンツ)。

私のためのディレマは、私が異なるコンテンツを含む複数のテーブルを持っているため、私は隠れたコンテンツをクリーンアップ(削除)するために定期的なクロンジョブを実行するので、だから1日に決めるなら、私はもはや寛大なことにはならないでしょう。トピックを投稿して2に変更した人に50ポイントを与えると、過去にトピックを作成したすべての人々も自動的に影響を受けます特定のアクションのために、クラスまたは設定ファイルにありますか?)。

集計:

  1. EXPポイントが特定のアクションのために与えられています。
  2. EXPポイントは簡単に変更できます(以前に変更されたEXPを受け取ったすべてのプレイヤーは自動的に有効になります)。
  3. EXPポイントは「隠された」機能を考慮に入れます(隠されていないコンテンツのみを考慮します)。
  4. 将来的に新しいEXPポイントを追加することを可能な限り簡単にしたいと考えています。
  5. a maxが必要です。 4 EXP(1つのアクションに関係なく)を1日に与える(より困難にする)。

は、私はすべてのDBでEXPを格納していないのように(おそらくその場でそれを行うためのアイデアを持っている - とちょうどCOUNT()がに、その後WHERE hidden = 0*それを照会やってどのくらいのEXP - そのコンテンツであった場合隠されたEXPが自動的に実行されます(私はそれをどうしたいでしょうか?)しかし、崩壊はおそらく複雑なJOIN秒を意味し、1日あたりの最大値は問題になるかもしれません)?

私は何時間も頭を叩いていたので、もしあなたがこれをどうやって行うのか(可能であれば例と共に - )、私は感謝します。

あなたの回答を感謝します。

答えて

0

データベースのログを管理するためのクラスを作成します。

  • のuser_id
  • ポイント
  • タイムスタンプ

エンティティ0を数えENTITY_ID

  • エンティティ
  • 理由:私は、データベースがを追跡思っていますは、ポイントが付与されたコンテンツのタイプの識別子です。 "ビデオ"。 * entity_id *はエンティティのID番号です(例:ビデオID#24を追加すると2ポイントの報酬が与えられます)。 の数で、ポイントをカウントするかどうかをシステムに通知します。

    管理者がビデオ、投稿、評価など何かを隠すと、ログマネージャはentity_idと一致するエンティティに関連付けられた関連ポイントを検索し、を数えてフィールドを0に設定します。これにより、特定のユーザーのポイントの合計を簡単に取得できますが、カウントする必要があるポイントのみを取得します。

    ポイントを受け取ることを保証するものをユーザーが実行すると、ログマネージャーはこの特定の日にユーザーに与えられたポイントの数を見つけて、全額が上の合計を押した場合4.

    私はこれを完全には考えていないので、私のロジックに欠陥があるかもしれませんが、それはあなたを始めるのに十分かもしれません。

  • 関連する問題