php - Facebook-Timeline 系统应该如何查看数据库?

标签 php mysql database-design

我将如何存储用户“帖子”?这样我就可以有效地从数据库中获取它们,然后在请求特定用户页面时处理它们以按时间顺序显示?

我是否像这样将所有用户的所有帖子存储在一个表中:

Post ID | Poster ID | Post Content | Posted to this Users Wall | Post Timestamp

然后,当用户打开 UserFoo 的页面时,我只获取所有行,其中 Posted to this Users Wall = UserFoo?

上面的示例不会使表格变大吗?

最佳答案

您提出的布局看起来很合理。 5 列(四个 INT 和一个 TEXT),根本不是一个“庞大”的表格。

如果您有适当的索引,查询 WHERE "Posted to this Users Wall"= "UserFoo" 几乎是即时的。

对于您的目标查询(按时间顺序显示发送到当前用户墙上的帖子),最好的索引可能在(发布到此用户墙上,发布时间戳)(两列索引)。

关于php - Facebook-Timeline 系统应该如何查看数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17236123/

相关文章:

mysql - 无法访问 mysql 表,收到它已崩溃的消息

php - 某个页面一次只有两个人?

java - 如何向数据库添加标签

mysql - 如何设计一个架构来处理定期批量插入/更新?

database-design - 设计数据库架构 : DB for use with a couple different languages

php - 隐藏javascript不在浏览器中显示

php - 如何在 PHP 中使大的多维变量看起来更短?

mysql - 具有精度的 liquibase double 型

PHP包: do not really understand

javascript - 使用 Firebase Storage 和 Dropzone 通过 JavaScript 上传