繁体   English   中英

MySQL添加朋友| 删除朋友-关注| 降低系统效率

[英]MySQL Add Friend | Remove Friend - Follow | Unfollow system efficiency

我目前有一个名为[friends]的表,该表用于行等。

+ ----------------------------------- friend_id | friend_one | 老二 角色-------------------------------------------- + +- -------------------------------------------------- -------------------------------------------------- ------------------------- +

这是一个跟踪和取消跟踪的系统,但是它并不是很好。

对于“添加和删除”朋友,我想知道如何使它更有效,这样我就可以更轻松,更可靠地从数据库中读取数据。

// Add Friend
public function Add_Friend($uid,$fid){
    $fid            = mysql_real_escape_string($fid);
    $q          = mysql_query("SELECT friend_id FROM friends WHERE friend_one='$uid' AND friend_two='$fid' AND role='fri'");

    if(mysql_num_rows($q) ==0 ){
        $query      = mysql_query("INSERT INTO friends(friend_one,friend_two,role) VALUES ('$uid','$fid','fri')") or die(mysql_error());    
        $query      = mysql_query("UPDATE users SET friend_count=friend_count+1 WHERE uid='$uid'") or die(mysql_error());   
        return true;
    }
}

// Remove Friend
public function Remove_Friend($uid,$fid){
    $fid            = mysql_real_escape_string($fid);
    $q          = mysql_query("SELECT friend_id FROM friends WHERE friend_one='$uid' AND friend_two='$fid' AND role='fri'");

    if(mysql_num_rows($q) == 1){
        $query      = mysql_query("DELETE FROM friends WHERE friend_one='$uid' AND friend_two='$fid'") or die(mysql_error());
        $query      = mysql_query("UPDATE users SET friend_count=friend_count-1 WHERE uid='$uid'") or die(mysql_error());   
        return true;
    }

}

一切工作正常,我只想知道如何使它变得更容易。 因为现在我正在尝试阅读我目前正在关注的朋友数量,但是使用我目前的SQL知识几乎不可能做到。

我建议您不要运行此查询

$fid            = mysql_real_escape_string($fid);
$q          = mysql_query("SELECT friend_id FROM friends WHERE friend_one='$uid' AND friend_two='$fid' AND role='fri'");

如果使用add_friend ,则bcoz很明显 ,这两个ID 未相互连接,则只有您可以调用此函数,因此无需使用查询。

并且在删除好友的情况下,两个ID相互连接,那么只有您会调用此函数。

因此,我建议删除这两行。 而且,您的方法很好,所以继续前进。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM