最相关的墙帖算法

时间:2013-09-10 09:24:54

标签: php mysql logic strategy-pattern fetching-strategy

我即将开发一个可以从不同用户那里获取大量墙帖的墙。我有一个名为“edu_posts”的全球表,其中包含墙上的帖子,以及对这些内容的评论。

我希望创建某种系统,专注于为用户提供最相关的内容。

我希望我想到的当前解决方案的反馈/替代方法/等,如下所示:

简单的评级系统:

  1. 创建相关user_id的列表:数据库存在不同的表,例如:关注者,帖子,消息,喜欢(来自帖子和评论)。然后系统搜索author_id是当前用户ID的每一行。然后我们检索receiver_id,并将它们放入一个数组中。 retrievever_id可能是当前用户尝试与之通信和/或认为有趣的人 - 至少他要么跟着,评论/喜欢他的帖子等等。数组的构建是:key => the user id, value => the number of times the reciever_id has appeared。然后,您将得到一个列表,如下所示: $userlist = array(12 => 9, 55 => 8, 7 => 5, 56 => 3) // etc etc(所以基本上:ID 12出现9次,ID 55出现8次,依此类推) 现在我们已经实现了相关user_id的列表。
  2. 为posts_array添加评分:我从数据库中检索所有墙贴和评论,然后输出如下数组:See screenshot然后我将比较我的{{1}每个字段的数组:$userlist。可以说,在帖子30(上面的打印示例)中,用户ID:12存在3次(评论2次,喜欢1次),然后评分为author_id (for the post), author_id (for the comments), author_id (for the likes),然后我们添加此编号{{ 1}},在3 * 9 (nine, because the user_id 12 has appeared 9 times in our $userslist)
  3. 对posts_array进行排序:然后我们基本上做的就是将(3 * 9): 27 to the ratings field与评分字段进行排序。
  4. 有意义吗?你了解我的麻烦吗?我希望我足够清楚。我知道这是一个非常难以回答的问题,并且确实没有任何真正的答案。我只需要评估存在的不同方法,因为上面的例子将是一个非常繁重的SQL(以获取所有不同的相关表,并包含数据)和PHP操作。

    非常感谢提前!

0 个答案:

没有答案