0

こんにちは、

テストに基づいてユーザーを予測するシステムを作成しようとしています。この一部として、データベースに最新の 500 個の値のみを保存したいと考えています。

私が保存している現在のフィールドは

ID (Auto increment)
USERID (the users unique ID)
SCORE(an integer)

理想的な世界では、一意のユーザーがデータベースで 500 を超えるレコードを取得したときに、システムが最も古い行を削除することを望みます。コードを非常に重くすることなく、PHP でこれを自動化する簡単な方法はありますか?

4

1 に答える 1

1

日付/時刻フィールドを保存して、1 か月以上経過したものを判断できるようにする必要があります。その後、次のように簡単になります。

DELETE FROM yourtable
WHERE timestampfield > (NOW() - INTERVAL 1 MONTH)

auto_incremented ID に「ギャップ」を持たない場合は、非常に単純な (そして非常に失敗しやすい) ことができます。

INSERT INTO ....  <--add new record

DELETE FROM yourtable WHERE (id < (INSERT_ID() - 500))

しかし、これは非常に信頼できません。

于 2012-05-06T20:52:51.340 に答える