【问题标题】:How to retrieve the best voted article, per day, per week, per month or forever?如何每天、每周、每月或永远检索最佳投票的文章?
【发布时间】: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 年等等(烘焙:存储、缓存)跨度>
  • 不要分开日、月和年——那会很痛苦。

标签: php sql calendar vote


【解决方案1】:

如果呈现数据的最小单位是一天,那么我将从 DATE 列和 SQL 查询开始,以确定每个时间间隔的投票数。

如果您的数据量不够好,您可以优化它。除了添加列之外,您还可以使用不同的表结构来存储每个期间的总计。然后计算将在插入上执行,而不是在每个选择上执行。

关于日历月,这取决于系统的要求。

无论您使用什么选项,请务必考虑用户和服务器不同时区的影响!

【讨论】:

    猜你喜欢
    • 2017-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-24
    • 1970-01-01
    • 2011-05-30
    相关资源
    最近更新 更多