如何为任务应用程序建立关联模型?

时间:2011-06-04 15:18:58

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

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

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:?

任务模型的'happen_on'字段用于计划任务的自定义日期。 'days'字段存储任务应该发生的一周中的哪几天,如果它重复出现。

我有两个问题。

1)我读到了关于单表继承的内容,并想知道这对我是否有用。每个模型几乎都是相同的,除了Task模型有'days'和'occurrence _on',但没有'est_completion_date'。模拟所有这些关联的最佳方法是什么?

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

1 个答案:

答案 0 :(得分:0)

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

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