我正在开发一个目标完成应用程序,其中可以有目标、里程碑和任务。里程碑属于目标,目标可以有许多里程碑,任务可以属于目标、里程碑,也可以独立存在。我想在每个模型中存储的信息如下:
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:?
任务模型的"occurt_on"字段用于为自定义日期安排任务。"天"字段存储任务应该在一周中的哪几天执行(如果是重复执行的话)。
我有两个问题。
1) 我读过关于单表继承的文章,想知道这是否适用于我。除了Task模型有"days"one_answers"occurse_on",但没有"est_completion_date"之外,每个模型都基本相同。对所有这些关联进行建模的最佳方法是什么?
2) 我不太确定如何最好地存储关于任务应该在一周中的哪几天发生的信息。我应该让它成为一个每天都有布尔值的关联数组,还是应该在表中为每天都有单独的字段?
1)您的单表继承问题在这里得到了很好的回答。
2) 我建议您的days
专栏保持简单。只需存储一串数字,每个数字代表一天。因此CCD_ 2可能代表星期一、星期三和星期三;星期四要查找周三发生的任务,可以使用正则表达式进行查询,例如select * from tasks where days regexp("4");