我即将开发一堵墙,它可以从不同的用户那里获取大量的墙贴。我有一个名为“edu_posts”的全局表,其中包含墙上的帖子和对这些帖子的评论。
我希望创建某种系统来专注于为用户提供最相关的内容。
我希望为我想到的当前解决方案提供反馈/替代方法/等,如下所示:
简单的评分系统:
- 创建相关 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 的列表。 - 将评分添加到 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
. - 对posts_array 进行排序:然后我们基本上所做的就是对
$posts_array
比较的评分字段进行排序。
有意义吗?你明白我的烦恼吗?我希望我足够清楚。我知道这是一个很难回答的问题,而且真的没有任何真正的答案。我只需要评估存在的不同方法,因为上面的示例将是一个非常繁重的 SQL(获取所有不同的相关表,并包含数据)和 PHP 操作。
提前谢谢了!