Как это можно смоделировать с точки зрения базы данных?
У меня есть модельный проект, который имеет дату начала и дату окончания. Проект может иметь несколько целей, и каждая задача должна иметь статус (успешный или нет) на каждый день.
Так, например, скажем, у меня есть проект с именем "Get in better shape"
, который начинается сегодня, и заканчивается через 1 месяц. Я добавляю следующую цель "Run 1 km"
, Для каждого дня проекта я хочу отметить цель как успешную или неудачную. Я думал, что результатом должна стать другая модель, относящаяся к цели. Примерно, у меня есть это:
Project has_many :objectives
Objective belongs_to :project
has_one :result
Result belongs_to :objective
Дело в том, что я также думал о том, чтобы добавить День в качестве модели, потому что сейчас очень сложно показать определенный день (и его результаты) ... но почему-то это не будет правильно.
Есть ли более простой способ представления моделей? Как вы относитесь к приложениям, где диапазоны дат актуальны / важны?
1 ответ
Я работал над чем-то похожим недавно. Вы можете настроить его так:
Project has_many :objectives
Objective belongs_to :project
has_many :result
Result belongs_to :objective
Тогда используйте cron
создать запись в Result
База данных каждый день. Rails устанавливает временные метки в базе данных по умолчанию, поэтому фильтруйте результаты за определенный день, используя created_at
поле.
Вы можете использовать всякий раз, когда gem для настройки заданий cron.