2011-06-04 33 views
0

我正在完成一個目標完成應用程序,其中可能有目標,里程碑和任務。里程碑屬於目標,目標可以有許多里程碑,任務可以屬於目標,里程碑或獨立。我想要在每個模型中存儲的信息如下:如何建模任務應用程序的關聯?

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

任務模型的'occurrence_on'字段是爲任務計劃自定義日期。 '天'字段存儲了一週中應該發生的任務,如果它重複發生。

我有兩個問題。

1)我讀了關於單表繼承,並想知道這是否適用於我。除了Task模型有'days'和'occurrence_on',但沒有'est_completion_date',每個模型都幾乎相同。建立所有這些關聯的最佳方式是什麼?

2)我不太清楚如何最好地存儲有關每週應該發生任務的星期幾的信息。我應該把它作爲每天布爾值的關聯數組嗎?還是應該爲表中的每一天都有單獨的字段?

回答

0

1)您的單表繼承問題已得到很好的回答here

2)我建議你的days欄保持簡單。只需存儲一串數字,每個數字代表一天。因此245可能代表星期一,星期三&星期四。要查找星期三發生的任務,您可以使用正則表達式進行查詢,例如select * from tasks where days regexp("4");

相關問題