实现更新用户上次访问数据库的正确方法是什么?
我在 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 分钟才查询一次数据库。我可以保持现在的状态还是需要进行更多更改才能使其更好地工作(从性能的角度来看)
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);
}
}
}