注目のアイテム用の別のテーブルがあると仮定します (おそらく、メイン アイテム テーブルと他の情報を参照するアイテム ID を持っています)... このテーブルにlast_featured
、アイテムが最後に表示された時間を表す列を追加します。そこからクエリを操作して、注目のアイテムのローテーション リストを取得できます。
これは次のようになります (PHP と MYSQL の間の奇妙な疑似コードの組み合わせとして):
// select the most recent item in the list, considered the current item
$item = SELECT * FROM featured_items ORDER BY last_featured DESC LIMIT 1;
if ($item['last_featured'] > X_minutes_ago) {
// select the oldest item in the list, based on when it was last featured
$item = SELECT * FROM featured_items ORDER BY last_featured ASC LIMIT 1;
// update the selected item so it shows as the current item next request
UPDATE featured_items SET last_featured=NOW() WHERE item_id = $item['item_id'];
}
これにはデータベースへの 3 回の呼び出しが必要であることに注意してください。これを達成するためのより効率的な方法があるかもしれません。