【问题标题】:Ruby on Rails and MySQL inserting and selecting weekly eventsRuby on Rails 和 MySQL 插入和选择每周事件
【发布时间】:2011-07-07 09:47:52
【问题描述】:

对于我目前正在处理的项目,用户需要能够添加特定日期、每周日期(例如每周三中午 12 点)或每月日期(例如每月 1 号晚上 8 点)。 日期是用户搜索的主要内容。最重要的是能找到即将到来的第一个日期。

想了一会儿,但我不知道该去哪里。这是我想出的:

为奉献日期添加一定数量的记录,并每天或每周更新这些记录。

这里的问题是,当用户搜索 2020 并且因为距离现在太久而没有添加记录时,我该怎么办。或者如果时间改变了怎么办。如何轻松找到正确的记录?

【问题讨论】:

    标签: mysql ruby-on-rails ruby date


    【解决方案1】:

    我不认为为每个日期添加多个条目是一个可行的解决方案,部分原因是您描述的问题。这也可能是一种快速增加数据库大小的方法,尤其是在有很多用户/日期的情况下。

    我的第一个想法是为此远离时间戳列。这部分是为了让您不必创建多条记录,同时也让查询变得更加容易。

    我会将逻辑单元分成不同的列。像这样,对于你描述的日期:

    id | wday | mday | hour | minute |
    ----------------------------------
    1  | 3    | NULL | 12   | 00     |
    2  | NULL | 1    | 20   | 00     |
    

    这样,您可以很容易地找到星期三 (Model.where(:wday => 3)) 或每月第一天 (Model.where(:mday => 1)) 的日期,还可以显示任何给定年份、月份的结果,或一周,等等,直到永恒。

    【讨论】:

    • 听起来不错。我相信 cronjobs 也可以这样工作。谢谢!
    猜你喜欢
    • 2010-10-30
    • 1970-01-01
    • 1970-01-01
    • 2013-02-01
    • 1970-01-01
    • 2011-04-17
    • 2015-01-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多