2012-01-24 7 views
1

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

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

Вы можете использовать драгоценный камень whenever для создания рабочих заданий cron.

Смежные вопросы