我有一个投票系统,它实际上很简单。
vote_id、user_id、article_id
我现在需要能够每天、每周、每月、每年、永远获得最佳投票文章。
我想我可以添加一个DATETIME列,然后使用mysql函数来检索投票BETWEEN或其他内容,并使用DATE INTERVAL和其他DATE OPERATIONS。
我还认为我可以将"一年中的哪一天"、"一年的哪一周"、"今年的哪一个月"、"年份"反规范化并存储在绩效栏中,这样我就可以轻松地获得某一天或某个月的选票。
此外,我想知道我是否需要从日历的角度来做这件事,这意味着"每月"可能不是从"1到31",而是从"12到12"跨越两个月。
有什么想法/反馈吗?
如果显示数据的最小单位是一天,那么我将从DATE列和SQL查询开始,以确定每个时间间隔的投票数。
如果它在您的数据量方面表现不够好,您可以进行优化。您也可以使用不同的表结构来存储每个期间的总计,而不是添加列。然后将对插入执行计算,而不对每个选择执行计算。
关于日历月份,这取决于系统的要求。
无论你使用什么选项,一定要考虑用户和服务器不同时区的影响!