4

ユーザーのポイントを保存する必要があります。各ポイントは、日付とともに別々の行に格納されます。これで、ユーザーが自分のページを開くと、ユーザーの合計ポイントが表示されます。

合計ポイントを計算するために、次のオプションを考えることができます。

  1. ユーザーが自分のページを開くたびに、その1つのmysqlテーブル内のすべてのポイントの合計を計算して表示します

  2. 合計ポイント用に別のテーブルを作成し、ポイントが追加されるたびに合計を計算し、前の合計値を新しい値に置き換えます。ユーザーが自分のページを開くと、その合計テーブルの1つの行にのみアクセスし、値を表示します。

  3. 毎晩実行するCRONジョブを作成して、ユーザーの合計ポイントを計算し、(2)で作成した別のテーブルに保存します。

私には、オプション2は効率的に見えますが、そのようなことが通常どのように行われるかを知りたいだけですか?

4

1 に答える 1

2

適切な権限がある場合は、ポイントテーブルにトリガーを作成できます。

delimiter | 
create trigger update_point_total 
    after insert on points for each row 
    begin
    update point_totals set total=total+NEW.points
    where userid=NEW.userid;
    end
|
delimiter;

これにより、ポイントテーブルに行が挿入されるたびに合計ポイント列が更新されます。

于 2012-06-01T00:51:17.857 に答える