目前,我们记录了用户最近 20 次媒体浏览量,以便他们可以查看最近浏览内容的简要历史记录页面。
为此,我们将媒体 ID 插入到表中。
为了保持表格较小,目前每个用户只有 20 个项目,因此在插入行之前,我们检查他们当前有多少历史记录 ID,如果小于 20,那么我们只需插入新行,如果超过20 然后我们必须选择最后一行并将其删除,然后才能插入新行。
$historyResult = mysql_query("SELECT id FROM mediatable WHERE userId = $userId ORDER BY id ASC");
if(mysql_num_rows($historyResult) >= 20)
{
$historyResult = mysql_query("SELECT id FROM mediatable WHERE userId = $userId ORDER BY id ASC LIMIT 1");
$historyRow = mysql_fetch_row($historyResult);
mysql_query("DELETE FROM mediatable WHERE id = '$historyRow[0]'");
}
mysql_query("INSERT INTO mediatable (userId, mediaId) VALUES ($userId, $mediaId))");
我现在正在将该站点转换为更现代的代码,并将使用 pdo 查询,我的问题是:
以上是解决这个问题的好方法还是我应该使用另一种方法,例如插入时的 MySQL 触发器?