0

我想创建一个朋友表,其中包含当前用户的用户 ID,以及当前用户朋友的其他用户 ID。

有点像这样:

userid    friends
456       345; 745; 769;

我希望能够在当前用户每次获得朋友时更新[在旧值之后插入新值]此数据。

我已经看到有关分隔符和内爆/爆炸数据的主题,但我似乎无法确定如何开始。

任何想法,有人吗?

4

3 回答 3

1

重新考虑您的方法并使用一个简单的表,其中每个用户 ID/朋友对都有一条记录。

userid    friends
456       345
456       745
456       769

这种方式很容易从中选择和维护数据。

于 2013-02-27T08:22:00.817 回答
0

如果你必须保持现有的结构。要添加朋友:

  1. 检查好友是否存在于当前好友列表中

假设$rs['friends']包含345; 745; 769;且新朋友 ID 为 999

// remove trailing `;`
$friend_list = substr($rs['friends'], 0, strlen($rs['friends'])-1);
$friends = explode('; ', $friend_list);
if(in_array(999, $friends)) {
  // friend exists
} else {
  $friend_list .= '; 999;';
  // then save back to DB
}

但是,我建议改用关系表

于 2013-02-27T08:25:37.387 回答
0

嗯,我还在学习。您的所有意见都非常有帮助。谢谢大家!我会考虑每一个,并寻求更多的想法。

于 2013-02-27T08:29:26.867 回答