私はメンバーがビデオをアップロードしたり、ビデオにコメントしたり、ビデオを評価したり、フォーラムに投稿したりすることができるウェブサイトを持っています。既存のPHP/MySQLウェブサイトにエクスペリエンスポイント(EXP)を統合していますか?
Iはまた、基本的にカラムが私は各テーブルを持っているboolean
(1
又は0
)、であるhidden
呼ばれ、例えば、管理者ユーザグループ(に利用できる(節度用)「非表示」機能を持っている;場合隠しは1
に設定されていましたが、コンテンツが表示されませんでしたが、コンテンツが表示される0
に設定されていた場合)、これは悪用を管理する機能に過ぎません。
私はそれぞれのテーブルを言うとき、私は何を意味しますか。フォーラムのトピックには別個のテーブルがあり、ビデオコンテンツには独自のテーブルなどがありますが、それらのすべて(少なくとも私がその機能を使用したいもの)に共通するものがあります。それらはすべてhidden
上記で説明したように)
基本的なEXP(Experience Points)機能を追加して、メンバーが特定のアクションを実行するためにXポイントを獲得できるようにすることを考えています。ビデオをアップロードする、フォーラムにトピックを投稿する、ビデオを評価する、ビデオにコメントするなど
合計のEXPは、メンバープロファイルおよびアクティビティストリームに表示されます(例:Earnt Xトピック)。
しかし、これを実装する方法はわかりません。なぜなら、全体のEXPには、非表示ではなく、アクティビティストリームと同じコンテンツを検討する必要があるからです(隠されていないコンテンツ)。
私のためのディレマは、私が異なるコンテンツを含む複数のテーブルを持っているため、私は隠れたコンテンツをクリーンアップ(削除)するために定期的なクロンジョブを実行するので、だから1日に決めるなら、私はもはや寛大なことにはならないでしょう。トピックを投稿して2に変更した人に50ポイントを与えると、過去にトピックを作成したすべての人々も自動的に影響を受けます特定のアクションのために、クラスまたは設定ファイルにありますか?)。
集計:
- EXPポイントが特定のアクションのために与えられています。
- EXPポイントは簡単に変更できます(以前に変更されたEXPを受け取ったすべてのプレイヤーは自動的に有効になります)。
- EXPポイントは「隠された」機能を考慮に入れます(隠されていないコンテンツのみを考慮します)。
- 将来的に新しいEXPポイントを追加することを可能な限り簡単にしたいと考えています。
- a maxが必要です。 4 EXP(1つのアクションに関係なく)を1日に与える(より困難にする)。
は、私はすべてのDBでEXPを格納していないのように(おそらくその場でそれを行うためのアイデアを持っている - とちょうどCOUNT()
がに、その後WHERE hidden = 0
と*
それを照会やってどのくらいのEXP - そのコンテンツであった場合隠されたEXPが自動的に実行されます(私はそれをどうしたいでしょうか?)しかし、崩壊はおそらく複雑なJOIN
秒を意味し、1日あたりの最大値は問題になるかもしれません)?
私は何時間も頭を叩いていたので、もしあなたがこれをどうやって行うのか(可能であれば例と共に - )、私は感謝します。
あなたの回答を感謝します。