刪除表中的數據以下字段:id, date, user_id, city, price
CakePHP的汽車從MySQL
我想是超過1年被automaticaly刪除的行,但我真的不知道如何做到這一點。應該通過應用程序還是數據庫來完成?怎麼樣?
這裏的另一個問題是每年將會有大約5萬個插入。 'id'字段在幾年後會發生什麼?這個數字不會太大嗎?在這種情況下可以做些什麼?
非常感謝提前。
刪除表中的數據以下字段:id, date, user_id, city, price
CakePHP的汽車從MySQL
我想是超過1年被automaticaly刪除的行,但我真的不知道如何做到這一點。應該通過應用程序還是數據庫來完成?怎麼樣?
這裏的另一個問題是每年將會有大約5萬個插入。 'id'字段在幾年後會發生什麼?這個數字不會太大嗎?在這種情況下可以做些什麼?
非常感謝提前。
我會建議creating a basic shell處理刪除記錄,並安排一個cron作業,每當你想檢查應該刪除的記錄時運行。外殼可能很簡單,如下所示:
class JanitorShell extends AppShell {
// put the model you wish to delete from here
public $uses = array('Model');
public function main() {
$this->Model->deleteAll(array(
'Model.created <' => date('Y-m-d', '-1 year')
));
$this->out('Records deleted.');
}
}
然後你的cron作業會運行你的shell。要運行你的shell,請致電:
cake -app /path/to/app janitor
這是假設cake
是在路徑中。當然,這是一個非常基本的shell,可以很容易地擴展,保留已刪除內容的日誌,甚至可以將刪除的記錄移動到新表中,這是一種「軟刪除」。您應該不會在main()
中放置這樣的破壞性代碼,因爲它每次運行shell時都會運行,但這會讓您開始。
要回答你的第二個問題,50k插入一年是不值得擔心的。要知道主鍵的限制,請閱讀MySQL數據類型。
其實我覺得應該是
日期( 'Y-M-d' 的strtotime(「 - 1年))