У меня есть различные модели, из которых я хотел бы отслеживать и собрать статистические данные.
Проблема состоит в том, как сохранить изменения в течение времени.
Я думал о различной альтернативе:
Каковы Ваши предложения?
Не изобретайте велосипед .. Используйте django-reversion для регистрации изменений.
Я бы выделил статистику в отдельную модель.
У меня была похожая ситуация, когда мы должны были хранить историю изменений. Но нам также нужен аудит, чтобы отследить, кто внес изменения, и возможность откатиться. В нашем подходе хранение в базе данных казалось более логичным. Однако, учитывая, что у вас есть статистические данные, и они будут большими, возможно, для вас будет лучше подход на основе отдельных файлов.
В любом случае вы должны использовать общий механизм для регистрации изменений в моделях, а не кодировать каждую модель по отдельности.
Взгляните на это: http://www.djangosnippets.org/snippets/1052/
Мой учитель элементарной химии сказал: «Если вы не запишите это, этого не произошло», поэтому сохраняйте логи в файл.
Поскольку информация журнала не пересекается с данными вашего приложения (фактически, это метаданные), храните их отдельно. Вы можете войти в таблицу базы данных, но она должна отличаться от вашей модели.
Текстовые данные консервирования трудны для чтения людьми, а двоичные данные - тем более; log в удобном для анализа формате, и данные можно легко импортировать в программное обеспечение для анализа.