php - Facebook,我应该在 SQL 中使用 Array 还是不同的行来表示喜欢的帖子

标签 php mysql arrays facebook

我正在制作一个网站,您可以在其中喜欢 博客帖子以及用户更新,所以我应该为传递帖子/博客 ID 的每个喜欢的用户使用插入语句,还是应该使用数组和将用户的点赞保存在一个逗号分隔的数组中

像这样:

发布 1 示例 SQL:

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

或数组

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

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

最佳答案

您是否曾经关心过让个人点赞、取消点赞、搜索用户点赞,甚至可能搜索用户 friend 点赞? 如果是这样,请为每个用户帖子保存一条记录,并且不要使用逗号分隔的列表/数组。列表/数组将变得难以管理非常很快并且老实说,它们不是关系数据库擅长做的事情。

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


就第二个问题而言,我敢肯定有某种“复杂的算法”正在进行,基于用户经常点击的内容,向用户展示他们 friend 的更多“他们喜欢什么”。在那之后,它可能只是以更新优先的顺序随机散布各种“wall-item”,其中“wall-item”可以是类型(更新、新闻、视频、图像、签到、应用程序-使用权)。我还怀疑订单有其他问题,因为订单绝对不是发布时间,也不是上次触摸的时间。

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

关于php - Facebook,我应该在 SQL 中使用 Array 还是不同的行来表示喜欢的帖子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12286582/

相关文章:

java - 从java到php5?

php - 在 MySQL 数据库中存储特殊字符的最佳方法是什么?

javascript - 如何使用从 SQL 数据库请求的相同数据在 <tr> 中创建链接?

mysql - 具有复合主键的外键在 MySql 中不起作用

mysql - 表充满数据后添加检查约束

javascript - 根据数组项对象属性值查找数组的索引值

php - 使用 Curl、PHP 和 HTML 显示 Google 图像 - Wordpress

mysql - 我可以在 Kettle Pentaho 中从 MySQL 执行 LOAD DATA INFILE 吗?

arrays - 如何检查任何类型的变量是否为数组

javascript - 手动反转数组