product_date_added
作为字段的每个产品 a都Date
包含它的添加日期。它们还有一个product_views
which 是一个int
包含产品被查看次数的字段。
为了按受欢迎程度显示产品,我使用了一种算法来计算产品每天的点击量。
SELECT
AVG(product_views / DATEDIFF(NOW(), product_date_added)) as avg_hits
, product_table.*
FROM product_table
WHERE product_available = "yes"
GROUP BY product_id
ORDER BY avg_hits DESC
这行得通,但老板注意到很多旧产品首先出现。所以他基本上希望新观点比旧观点更有分量。
他的建议是,任何超过一年的浏览量都不算数。我认为我必须保留每个视图的日期才能做到这一点,我认为这会降低性能。
像我老板要求的那样创建流行度算法的最佳方法是什么?
理想情况下,我希望能够想出一些不会改变表结构的东西。如果那不可能,我至少想提出一个可以使用现有数据的解决方案,这样我们就不会从 0 开始。如果那也不可能,那么任何可行的方法都可以。