1

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

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

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

简单的评分系统:

  1. 创建相关 user_ids 的列表:数据库存在不同的表,例如:关注者、帖子、消息、喜欢(来自帖子和评论)。然后系统搜索 author_id 为当前用户 ID 的每一行。然后我们检索receiver_id,并将它们放入一个数组中。retriever_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_ids 的列表。
  2. 将评分添加到 posts_array:我从数据库中检索所有墙贴和评论,并将它们输出到一个数组中,如下所示:看截图然后我将我的$userlist数组与每个字段进行比较:author_id (for the post), author_id (for the comments), author_id (for the likes)。比方说,在帖子 30(上面的打印示例)中,用户 id: 12 存在 3 次(评论中 2 次,点赞中 1 次),那么评分是3 * 9 (nine, because the user_id 12 has appeared 9 times in our $userslist),然后我们将这个数字添加(3 * 9): 27 to the ratings field$posts_array.
  3. 对posts_array 进行排序:然后我们基本上所做的就是对$posts_array比较的评分字段进行排序。

有意义吗?你明白我的烦恼吗?我希望我足够清楚。我知道这是一个很难回答的问题,而且真的没有任何真正的答案。我只需要评估存在的不同方法,因为上面的示例将是一个非常繁重的 SQL(获取所有不同的相关表,并包含数据)和 PHP 操作。

提前谢谢了!

4

0 回答 0