1

各ユーザーの過去 30 日間の情報を記録するデータベースをセットアップしようとしています。データは 1 日 1 回 (つまり、cron ジョブによって) 記録され、アイテムの値になります (つまり、常に変化します)。

これを構造化する最良の方法は何ですか?テーブルを設定してから、30日をテーブルに保存し、cronジョブで新しい日を追加するときに31日目を削除することを考えていました(そして、他のすべてを1日上にシフトします)が、これはあまりないようです効率的..

助けてくれてありがとう。

4

3 に答える 3

3

できることは、各エントリに現在の日付を保存してから、cron ジョブで、30 日以上経過したすべてのエントリを削除することです。

たとえば (MySQL の場合)、

DELETE FROM user_statistics WHERE DATEDIFF(NOW(), date_of_record) > 30;
于 2013-03-29T18:45:44.880 に答える
2

列を使用して実際の日付でログに記録しDATEます。MySQL では、「過去 30 日間」を簡単に照会できます。

パージに関しては、cron ジョブは 30 日より古いものを簡単に削除することもできます。または、30 日より古いものを無視するのは簡単なので、古いレコードを削除しないことを選択することもできます (少なくとも毎日ではない)。

于 2013-03-29T18:45:54.833 に答える
2

ユーザーデータを独自の日付で保存し、制限を超えたときに最も古いものを削除します。何もシフトする必要はありません。

于 2013-03-29T18:45:16.643 に答える