ユーザーが次の 3 つのアート ショーをリストした SQL テーブルがあります。
私は cron ジョブ メンテナンス スクリプトを作成しています。すでに発生したショーを消去したいと考えています。しかし、「他のものを1つ上に移動」したいと思います..show1が消去されますが、show2がshow1になり、show3がshow2になり、show3が空になります。
これはこれにアプローチする最良の方法ですか?(Codeigniter BTW を使用) 各ショーには、実際には他の情報 (show1title、show1desc など) があることに注意してください。
$_sql = "SELECT users.id FROM users WHERE users.show1date < CURDATE() AND users.show1date != 0000-00-00";
$_query = $this->db->query( $_sql );
if ($_query->numRows() > 0){
foreach ($_query as $_row) {
$_id = $row->id;
$_show2date = $_row->show2date;
$_show3date = $_row->show3date;
$_sql = "UPDATE users SET users.show1date = ?, users.show2date = ?, users.show3date ='' WHERE users.id = ?";
$_query = $this->db->query( $_sql, array($show2date, $show3date, $_id) );
}
}
これにより、「すべての番組が上に移動」し、show3 が空のままになります。これはこれを行う良い方法ですか?もっと良い方法があるように思えますか?
今私が考えている..たぶん、user.idを外部キーとして持つショー用の別のテーブルですか?