删除表中的数据以下字段: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年))