1

我正在创建一个网站,您可以在其中喜欢 博客文章和用户更新,所以我应该对每个喜欢传递帖子/博客 ID 的用户使用插入语句,还是应该使用数组并将用户喜欢的内容保存在单个逗号分隔的数组中

像这样:

发布 1 示例 SQL:

-------------------------------------------
Likes(user_id)         postid          
-------------------------------------------
user1                  post1
user2                  post1

或数组

-------------------------------------------
postid              likes         
-------------------------------------------
post1               user1, user2, user3

此外,facebook如何在墙上随机显示帖子,我的意思是,如果我将更新存储在表格中,当我循环使用这些更新时,我会得到更新,现在我如何添加上传的照片或一个人添加另一个作为朋友等等等,我的意思是他们是否显示新闻提要并与原始帖子链接

4

1 回答 1

0

您是否曾经关心过获得个人的点赞、取消点赞、搜索用户的点赞,或者甚至搜索用户朋友的点赞?如果是这样,请为每个用户帖子保存一条记录,并且不要使用逗号分隔的列表/数组。列表/数组将很快变得难以管理而且它们并不是关系数据库擅长的。

如果需要在屏幕上显示逗号分隔的列表,可以使用GROUP_CONCAT获取字符串进行显示。


就第二个问题而言,我确信存在某种“复杂的算法”,根据用户经常点击的内容,向用户展示更多来自他们朋友的“他们喜欢什么”。在那之后,它可能只是以新事物优先顺序随机排列的各种“墙项目”,其中“墙项目”可以是类型(更新、新闻、视频、图像、签到、应用程序-使用权)。我还怀疑订单还有其他问题,因为订单肯定不是发布时间,也不是上次触及的时间。

我还记得以前的一些用户设置,您可以在其中选择不同类型帖子的权重(例如 10 倍更新、3 倍新闻、5 倍视频、5 倍图像、1 倍签到、1 倍应用程序访问),这将改变“随机性” “从另一端出来的东西。在这种情况下,天真地,它将是 1d25,映射到 1-10=>updates、11-13=>news、14-19=​​>video 等。

于 2012-09-05T17:19:28.617 回答