在社交网络环境中,在全球范围内检查友谊的最简单方法是什么?

时间:2011-10-08 02:44:31

标签: php mysql arrays social-network-friendship

供参考,以下是我最近询问的与此问题相关的问题:How to model Friendship relationships

在这个问题上,我们想出了一种只有在朋友发布时才能显示新闻Feed项目的方法。但是,我需要的是如何以更动态的方式检查友谊的建议,以便可以在多个站点功能中使用它。

例如,我刚刚安装了评论系统,允许用户在新闻帖子上发表评论。但是,这不仅限于朋友,而且应该是(后来应该由帖子的作者选择)。

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

知道这样的问题会在整个网站上多次出现,检查友谊的最简单方法是什么? 我可以以某种方式将所有朋友的用户ID从数据库中提取到某种会话数组中,然后每当我需要确定相关人员是否为时,请执行 if(in_array($friends)) 当前登录用户的朋友?在我的脑海中,听起来它可以正常工作,但我首先想要你的输入。

我上面链接的问题解释了我的友谊表如何运作,以防你帮助我。

1 个答案:

答案 0 :(得分:0)

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

由于您将在同一页面上多次检查朋友列表,为什么不直接查询并将其存储在您可以在同一页面上继续使用的本地数组中。

页面执行完毕后,数据将被丢弃。

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

建议的实现方法是遵循上述注释中“pst”的建议,并且只需在每次需要查找关系时进行查询,因为这很容易实现。稍后,当查询的速度开始成为一个问题时,您可以更改该方法的内部,以便在首次调用时将该朋友列表缓存在本地数组中以加快速度。 (交换处理器使用的内存使用情况)。

相关问题