У меня есть приложение для отслеживания задач, которое является очень простым.В настоящее время у него есть ряд задач, и прогресс обновляется по мере их выполнения, от 0 до 100%.
Проблема в том, что все эти данные очень временные, и я хочу добавить отчетность поверхзадачи, такие вещи как:
- Количество задач, добавленных между двумя датами
- Количество задач, выполненных между двумя датами
- Количество усилий (Так что этоОбщее усилие по отношению к задаче, деленное на 100 и синхронизированное с изменением процента выполнения) между двумя датами
И т. Д.
Как вы замораживаете данные во времени, чтобыразрешить такого рода отчеты?
Вот идеи, о которых я думал до сих пор:
Идея 1. Никогда не меняйте определение задачи, но добавляйте таблицу «TaskProgress», котораясодержит детализированные обновления для выполнения задачи - затем вы можете «подвести их итоги», чтобы получить текущий статус, или взять записи между двумя датами, чтобы увидеть, насколько достигнут прогресс между двумя датами.Положительным моментом является то, что это выдержит разумное количество изменений в требованиях к отчетности. Недостатком является то, что для получения текущего прогресса в выполнении задачи потребуется больше запросов.
Идея 2. Созданиетаблица для хранения изменений прогресса.Каждый раз, когда задача обновляется, также добавляйте запись, которая содержит вычисленный сдвиг, вызванный изменением.Отчеты - это всего лишь случай выбора записей между требуемыми датами и их суммирования.Положительным моментом является то, что это не окажет значительного влияния на существующую функциональность и не потребует слишком много усилий при запросах. Недостатком является то, что вам придется изменить эту таблицу, если она не содержит информацию, которую вы хотите добавить в отчет..
Идея 3. Идея 3 состоит в том, чтобы создать таблицу «TaskProgress» из Идеи 1, но при этом сохранить итоговый прогресс в выполнении задачи.Это означает, что сумма элементов хода выполнения задачи снова сохраняется как общая сумма в самой задаче, но эти значения будет считываться быстрее, чем рассчитывать их, и это дает большую гибкость для последующего изменения отчетов.
Любые комментарии по этим идеям, или лучшие предложения приветствуются.