答案:通过设计view_history表记录用户浏览行为,结合索引优化与去重逻辑,实现高效的商品浏览记录功能。

实现商品浏览记录功能,关键在于设计合理的数据库结构,并配合后端逻辑记录用户行为。以下是一个实用的 MySQL 商品浏览记录系统搭建方案,适合中小型电商或内容平台。
创建一张专门记录用户浏览行为的表,核心字段包括用户ID、商品ID、浏览时间等:
CREATE TABLE view_history (
id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
user_id INT NOT NULL,
product_id INT NOT NULL,
view_time DATETIME DEFAULT CURRENT_TIMESTAMP,
INDEX idx_user_product (user_id, product_id),
INDEX idx_product_time (product_id, view_time),
INDEX idx_user_time (user_id, view_time)
);
说明:
当用户访问商品详情页时,插入一条浏览记录。为避免重复刷屏,可限制同一用户短时间内对同一商品只记录一次:
// 示例:插入浏览记录前判断是否已存在近期记录
INSERT INTO view_history (user_id, product_id)
SELECT ?, ?
FROM DUAL
WHERE NOT EXISTS (
SELECT 1 FROM view_history
WHERE user_id = ? AND product_id = ?
AND view_time > DATE_SUB(NOW(), INTERVAL 30 MINUTE)
);
建议:
获取某用户最近浏览的商品列表,常用于“最近看过”功能:
SELECT v.product_id, p.name, p.price, v.view_time FROM view_history v JOIN products p ON v.product_id = p.id WHERE v.user_id = 123 ORDER BY v.view_time DESC LIMIT 10;
优化提示:
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号