我正在开发一个目标完成应用程序,其中可以有目标,里程碑和任务。里程碑属于目标,目标可以有许多里程碑,任务可以属于目标,里程碑或独立。我想在每个模型中存储的信息如下:
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)我不太确定如何最好地存储关于任务发生的星期几的信息。我应该只为每天的布尔值设置一个关联数组,还是应该在表中每天都有单独的字段?
答案 0 :(得分:0)
1)您的单表继承问题得到了很好的回答here。
2)我建议您为days
列保持简单。只需存储一串数字,每个数字代表一天。所以245
可能代表星期一,星期三和星期四。要查找星期三发生的任务,您可以使用正则表达式查询,例如select * from tasks where days regexp("4");