временная метка last_update для каждой таблицы?

#mysql #sql #database #timestamp #sql-update

#mysql #sql #База данных #временная метка #sql-обновление

Вопрос:

Рекомендуется ли иметь временные метки для последнего обновления строки в каждой таблице?

Или их следует устанавливать только там, где это действительно необходимо? Как я узнаю, где мне понадобится временная метка обновления позже? Для какого рода информации они имеют смысл?

Ответ №1:

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

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

Ответ №2:

Лучшим решением будет сохранить ее в таблицах, используемых для сбора транзакций. Это может работать для ведения журнала / безопасности или может использоваться для обработки параллелизма.

Ответ №3:

Я думаю, что начинать добавлять временные метки «last_updated» к таблицам — скользкий путь. Итак, у вас могут быть люди, спрашивающие «когда была изменена эта строка?» но как только вы добавите столбец last_updated, они спросят: «Хорошо, он был обновлен 6 дней назад. Что было изменено?». Итак, теперь вам нужно настроить таблицу «истории» со всеми измененными столбцами. Но затем они спрашивают: «Ну, столбец ‘foo’ был изменен 6 дней назад, какое было предыдущее значение?» И теперь вы отслеживаете полную историю каждой строки во всей базе данных!

Ответ №4:

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