2009-11-30 55 views
0

我正在创建一个简单的待办事项应用程序,其中有两种类型的任务。Rails数据建模问题

1)定期任务 - 这些任务有一个到期日期 2)定期任务 - 这些在指定日期作为提醒被强化。它们可以创建为每周或每月提醒。如果创建了一周,它将在每周(每周的指定日期)加强。同样的一个月,它需要指定星期和日期。

建立此场景的最佳方式是什么?

回答

2

我将有两列提醒对象 - remind_at(日期)和repeat_frequency(通过标识不同的重新发生的东西)。这样,您可以索引remind_at列,并通过它快速搜索。每次向用户显示提醒时,它会查看repeat_frequency - 如果它包含重复指示,请将remind_at设置为下一个日期,如果没有,则删除/存档提醒。

0

你可以建立一个Task有一个due_date。但是如果任务重复发生,due_date将为空,并且您将使用recurrence字段来计算next_due_daterecurrence将是一个字符串字段,其中包含像“星期二”(每周)或“17”(每月的一天数字)等可分析字符串。

def next_due_date 
    if due_date 
    due_date 
    else 
    # compute next due date using the 'recurrence' field and today's date 
    end 
end 

这可能是也可能不是你的“最佳途径”,根据您的要求,以及模型的未来需求。