Отслеживание изменений - Django

У меня есть различные модели, из которых я хотел бы отслеживать и собрать статистические данные.

Проблема состоит в том, как сохранить изменения в течение времени.

Я думал о различной альтернативе:

  • При хранении журнала в TextField откройте его и обновите его каждый раз, когда модель сохраняется.
  • Кроме того, засолите список и сохраните его в TextField.
  • Сохраните жесткий диск входа в систему.

Каковы Ваши предложения?

6
задан RadiantHex 23 March 2010 в 23:27
поделиться

3 ответа

Не изобретайте велосипед .. Используйте django-reversion для регистрации изменений.

Я бы выделил статистику в отдельную модель.

6
ответ дан 16 December 2019 в 21:37
поделиться

У меня была похожая ситуация, когда мы должны были хранить историю изменений. Но нам также нужен аудит, чтобы отследить, кто внес изменения, и возможность откатиться. В нашем подходе хранение в базе данных казалось более логичным. Однако, учитывая, что у вас есть статистические данные, и они будут большими, возможно, для вас будет лучше подход на основе отдельных файлов.

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

Взгляните на это: http://www.djangosnippets.org/snippets/1052/

1
ответ дан 16 December 2019 в 21:37
поделиться

Мой учитель элементарной химии сказал: «Если вы не запишите это, этого не произошло», поэтому сохраняйте логи в файл.

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

Текстовые данные консервирования трудны для чтения людьми, а двоичные данные - тем более; log в удобном для анализа формате, и данные можно легко импортировать в программное обеспечение для анализа.

1
ответ дан 16 December 2019 в 21:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: