如何根据变量api结果更新数据库?

时间:2014-11-09 23:52:58

标签: php mysql logic

我想帮助您获得更新我的视频数据库(MySQL)的最佳和最干净的方法。

这些视频被订购到文件夹中,我只能逐个抓取这些文件夹。

我的服务器使用外部api来抓取数千个视频(每个视频包含唯一ID,文件夹ID,标题,网址......)。

由于我想尽可能减少api通话,我想运行每日cron作业来浏览每个文件夹并添加新视频,并删除已删除的视频。

目前我可以浏览所有文件夹,循环播放每个视频并将其添加到数据库中。

while (true){
$videos = video_get($oid, $offset, $count);
$videos = $videos['response']['items'];

$results = count($videos);
echo $results . ' || ' . $offset;

if ($results > 0){
    $offset += $results;

    foreach ($videos as $video) {
        $i++;
        echo "<br>Number : " . $i;
        echo "<br>";
        $data = Array (
            "id" => $video['id'],
            "folder_id" => $video['folder_id'],
            "title" => $video['title'],
            "url" => $video['url']
        );
        $db->insert('videos', $data);
    }
}
else {break;}
}

我要问的是,考虑到大约有100000个视频,大约有20个文件夹,最好是添加所有视频并删除副本,或检查视频是否存在然后将其添加到数据库中如果是新的?

更重要的是,在api请求中删除不再存在的视频的最佳方法是什么?

我希望我已经足够清楚,但以防万一:

视频按文件夹排序。

可以随时在api端添加/删除视频。

我想将所有视频保存到我的数据库中,并根据api端是否有新视频或已移除的视频更新它们,以避免过于频繁地调用api。

感谢您的帮助。

0 个答案:

没有答案