データベースでのユーザーの最後の訪問の更新を実装する適切な方法は何ですか?
users テーブルに列 last_visit があり、このコードを bootstrap.php ファイルに追加しました
protected function _initUser() {
$this->bootstrap(array('db'));
$auth = Zend_Auth::getInstance();
$identity = $auth->getIdentity();
if($identity) {
$userModel = new Model_User();
$user_id = $identity->id;
$userModel->updateLastVisit($user_id, date("Y-m-d H:i:s"));
}
}
それはいいですか?または、この別の方法を行う必要がありますか?
編集
私はこれをやってしまったので、データベースは5分ごとに1回だけクエリされます. そのままにしておくことはできますか、それとも (パフォーマンスの観点から) より適切に機能させるために必要な変更は他にありますか?
protected function _initUser() {
$auth = Zend_Auth::getInstance();
if($auth->hasIdentity()) {
$currentUser = $auth->getIdentity();
if((time() - strtotime($currentUser->last_visit)) > 60*5) {
$last_visit = date("Y-m-d H:i:s");
$currentUser->last_visit = $last_visit;
$this->bootstrap(array('db'));
$user = new Model_User();
$user->updateLastVisit($currentUser->id, $last_visit);
}
}
}