在社交网络环境中,查看全球朋友最简单的方法是什么?


In a social network environment, what would be the easiest way to check for friendships globally?

作为参考,这里是我最近问的一个关于这个问题的问题:如何建立友谊关系

关于这个问题,我们想出了一种方法,只显示朋友发布的消息。然而,我需要的是关于如何以更动态的方式检查友谊的建议,以便它可以在多个网站功能中使用。

例如,我刚刚安装了一个评论系统,允许用户对新闻帖子发表评论。然而,这并不局限于朋友,而且应该(以后应该由帖子的作者设置为可选的)。

仅由朋友发布新闻条目略有不同,因为我直接从数据库获取数据,并且使用SELECT子查询仅从当前用户的朋友获取帖子。但是,在评论的示例中,我只想显示评论帖子表单,如果这个人是朋友的话。我实际上并没有从数据库中提取任何东西来挑选、排序和显示。

知道这样的问题会在整个网站中出现很多次,检查友谊的最简单方法是什么?我能否以某种方式将所有朋友的用户id从数据库中拉到某种会话数组中,然后在我需要确定所讨论的人是否为当前登录用户的朋友时执行 if(in_array($friends)) ?在我的脑海里,这听起来很好,但我想先得到你的输入。

我上面链接的问题解释了我的友谊表是如何工作的,如果这对你有帮助的话

实际上,将好友数组存储在会话中是一个非常糟糕的主意。如果在会话变量创建之后添加一个新朋友会发生什么?它不会在会话中更新。

既然你会在同一个页面上多次查看好友列表,为什么不直接查询它并将其存储在一个本地数组中,这样你就可以在同一个页面上继续使用它。

当页面执行完毕时,数组将被丢弃。

基本上,你只会查询列表一次。

一个推荐的实现是遵循上面评论中的"pst"的建议,并且每次需要首先找到关系时只需查询,因为这很容易实现。稍后,当查询的速度开始成为问题时,您可以更改该方法的内部,以便在第一次调用时将好友列表缓存到本地数组中以加快速度。