【问题标题】:How to model the associations for a task application?如何为任务应用程序建模关联?
【发布时间】:2011-06-04 23:58:25
【问题描述】:

我正在开发一个目标完成应用程序,其中可以有目标、里程碑和任务。里程碑属于目标,目标可以有许多里程碑,而任务可以属于目标、里程碑,也可以独立存在。我想在每个模型中存储的信息如下:

Goal      content:string, est_completion_date:date completed:boolean, completion_date:date
Milestone content:string, est_completion_date:date completed:boolean, completion_date:date 
Task      content:string, occur_on:date completed:boolean, completion_date:date, days:?

Task 模型的 'occur_on' 字段用于为自定义日期安排任务。 'days' 字段存储任务应该在一周中的哪几天发生,如果它是重复的。

我有两个问题。

1) 我读到了单表继承,想知道这是否适合我。除了 Task 模型有“days”和“occur_on”之外,每个模型都几乎相同,但没有“est_completion_date”。对所有这些关联建模的最佳方法是什么?

2) 我不太确定如何最好地存储有关任务应该在一周中的哪几天发生的信息。我应该把它变成一个每天都有布尔值的关联数组,还是应该在表中为每一天都有单独的字段?

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 data-modeling


    【解决方案1】:

    1) 您的单表继承问题已得到很好的回答here

    2) 我建议您的days 列保持简单。只需存储一串数字,每个数字代表一天。所以245 可能代表星期一、星期三和星期四。要查找周三发生的任务,您可以使用正则表达式进行查询,例如select * from tasks where days regexp("4");

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-10
      • 1970-01-01
      • 1970-01-01
      • 2012-11-24
      • 2012-04-01
      • 2016-11-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多