每个产品都有一个“product_date_added”字段,它是一个包含添加日期的“Date”类型字段。另外还有一个“product_views”字段,它是一个包含产品浏览次数的“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
这个方案是可行的,但老板注意到许多旧产品排名靠前。因此,他希望新视图权重比旧视图高。
他建议超过一年的任何视图都不计入权重。我认为我必须保留每个视图的日期才能做到这一点,但我认为这会降低性能。
创建像老板所要求的受欢迎度算法的最佳方法是什么?
理想情况下,我希望能够提出一些不改变表结构的东西。如果不可能,至少我希望能够提出解决方案,可以使用现有数据,这样我们就不会从零开始。如果也不可能,那么任何有效的解决方案都将起作用。