[英]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.