【发布时间】:2011-09-22 15:35:17
【问题描述】:
我有一个实际上很简单的投票系统。
vote_id、user_id、article_id
我现在需要能够每天、每周、每月、每年,永远获取最佳投票文章。
虽然我可以添加一个 DATETIME 列,然后使用 mysql 函数检索 BETWEEN 或其他内容的投票,并使用 DATE INTERVAL 和其他 DATE OPERATIONS。
我还认为我可以将“一年中的某一天”、“一年中的一周”、“一年中的一个月”、“一年”进行非规范化并存储在性能列中,我将能够轻松获得选票给定的一天或一个月。
另外,我想知道我是否需要从日历的角度来看,这意味着“每月”可能不是从“1 到 31”而是从“12 到 12”跨越两个月。
有什么想法/反馈吗?
【问题讨论】:
-
您的标签说 PHP,在其中实现这一点很简单,但听起来您正在寻找 MYSQL 解决方案。听起来您也使问题过于复杂。
BETWEEN有什么问题? -
在每天结束时计算出新的总数并烘烤它们。即在周一上午 00.01,计算出周日表现最好的数据,保存数据,直到周日 7 天,烘焙到周日,1 个月到周日,烘焙到 1 年等等(烘焙:存储、缓存)跨度>
-
不要分开日、月和年——那会很痛苦。