Как это можно смоделировать с точки зрения базы данных?

У меня есть модельный проект, который имеет дату начала и дату окончания. Проект может иметь несколько целей, и каждая задача должна иметь статус (успешный или нет) на каждый день.

Так, например, скажем, у меня есть проект с именем "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.

Другие вопросы по тегам