ver*_*ric 5 php mysql arrays social-network-friendship
作为参考,这里有一个关于我最近问过的与这个问题相关的问题: 如何建立友谊关系
在这个问题上,我们想出了一种只有在朋友发布时才显示新闻Feed项目的方法.但是,我需要的是如何以更动态的方式检查友谊的建议,以便可以在多个站点功能中使用它.
例如,我刚刚安装了一个评论系统,允许用户在新闻帖子上发表评论.但是,这不仅限于朋友,而且应该是(以后应该由帖子的作者选择).
仅由朋友发布新闻项目略有不同,因为我直接从数据库获取数据,并使用SELECT子查询仅获取当前用户的朋友的帖子.但是,在评论的示例中,如果此人是朋友,我只想显示评论发布表单.我实际上并没有从数据库中提取任何内容来进行选择,排序和显示.
知道这样的问题会在整个网站上多次出现,检查友谊的最简单方法是什么? 我可以以某种方式将所有朋友的用户ID从数据库中拉到某种会话数组中,然后 if(in_array($friends)) 每当我需要确定相关人员是否是当前登录用户的朋友时,我都会这样做吗? 在我的头顶,听起来它会工作正常,但我想先你的输入.
我上面链接的问题解释了我的友谊表是如何工作的,以防你帮我解决这个问题.
实际上,将友元数组存储在会话中是一个非常糟糕的主意。如果在创建会话变量后添加新朋友,会发生什么情况?它不会在会话中更新。
由于您将在同一页面上多次检查朋友列表,因此为什么不直接查询并将其存储在本地数组中,以便您可以在同一页面上继续使用。
当页面执行完毕时,该数组将被丢弃。
所以基本上,您只会查询该列表一次。
推荐的实现是遵循上述注释中“pst”的建议,每次需要先查找关系时只需查询,因为这很容易实现。后来,当查询速度开始成为问题时,您可以更改该方法的内部,以便在第一次调用该方法时将好友列表缓存在本地数组中,以加快速度。(将内存使用量换成处理器使用量)。
| 归档时间: |
|
| 查看次数: |
189 次 |
| 最近记录: |