#mysql #sql #database #timestamp #sql-update
#mysql #sql #База данных #временная метка #sql-обновление
Вопрос:
Рекомендуется ли иметь временные метки для последнего обновления строки в каждой таблице?
Или их следует устанавливать только там, где это действительно необходимо? Как я узнаю, где мне понадобится временная метка обновления позже? Для какого рода информации они имеют смысл?
Ответ №1:
временные метки строк используются для управления версиями строк в ситуациях, когда у вас оптимистичная блокировка записи; т. е. 2 пользователя редактируют одну и ту же запись одновременно.
Вы можете определить, изменилась ли версия базы данных, путем сопоставления метки времени текущей строки с меткой времени, найденной при извлечении строки из базы данных.
Ответ №2:
Лучшим решением будет сохранить ее в таблицах, используемых для сбора транзакций. Это может работать для ведения журнала / безопасности или может использоваться для обработки параллелизма.
Ответ №3:
Я думаю, что начинать добавлять временные метки «last_updated» к таблицам — скользкий путь. Итак, у вас могут быть люди, спрашивающие «когда была изменена эта строка?» но как только вы добавите столбец last_updated, они спросят: «Хорошо, он был обновлен 6 дней назад. Что было изменено?». Итак, теперь вам нужно настроить таблицу «истории» со всеми измененными столбцами. Но затем они спрашивают: «Ну, столбец ‘foo’ был изменен 6 дней назад, какое было предыдущее значение?» И теперь вы отслеживаете полную историю каждой строки во всей базе данных!
Ответ №4:
Я думаю, реальный вопрос заключается в том, для чего вы хотели бы использовать эти временные метки. Если вашему приложению это действительно не нужно, то я не вижу веских оснований для хранения и поддержки этих данных.