php - 获取 MySQL 数据库中每个用户的最新条目

标签 php mysql

这是一个“最佳实践”问题......

  • 我有一个 USERS 表(user_id、name)
  • 我有一个 FRIENDS 表(friend_id、name)
  • 我有一个 FRIEND_FACTS 表(friend_id、user_id、fact_id、fact_content)

我想要做的是针对特定用户“获取每个 friend 的最新 friend 事实”。

我面临的挑战是“获取最新版本” - 我的问题是做到这一点并使其高性能的最佳方法。这些是我对方法的想法:

  1. 为每个 FRIEND_FACT 条目添加时间戳,并在表中查询每个好友并返回 ORDER BY timestamp LIMIT 1。(这似乎可行,但如果一次查询 1000 个好友,会不会造成大量重复排序?)
  2. 每次添加事实时,都会替换仅存储fact_id 和friend_id 的LATEST_FACTS 关系表中的条目。 (这看起来更干净,但意味着维护另一个表)

还有其他想法吗?我不是这些事情的向导,所以我试图获得最高效的方法,而不会使解决方案过于复杂。

最佳答案

我可能做的事情是: $query =“从事实中选择max(fact_id),其中friend_id = '$friendId'”;

然后你可以抓取具有最大id的人脸的所有信息吗? 这就是您想要实现的目标吗?

关于php - 获取 MySQL 数据库中每个用户的最新条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35050663/

相关文章:

php - laravel 中的全局变量

php - 从 php 文件到 phpmyadmin 的数据库连接失败?

java - Java中处理unicode字符并将结果写入mysql和HBase

Mysql - 从前一天的输入中减去值

php - Drupal 数据库 : Have to move some data from one table to another by cheking the condition at remote server. .!

mysql - 如何以自定义格式而不是字母数字方式对 SQL 数据进行排序

php - 单击选择菜单中的值时显示数据库数据

php - 如何使用 $_session[] 名称为 mysql 数据库定义表?

javascript - 处理 iOS 虚拟键盘 “previous” , “next” , “Go/Enter” 按钮

php - 如何在 Laravel 5 中对合并的集合进行分页?