2015-10-16 42 views
0

Многие рамки программирования автоматически заполняют 2 поля модели/таблице/коллекции. В Rails два поля: created_at и updated_at. Функция полей не требует пояснений.Зачем нужны create_at и updated_at?

created_at

Метка времени, когда запись была впервые создана в базе данных.

updated_at

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

Я работаю над проектом Meteor, который не выходит из коробки с этими полями, и поэтому добавил createdAt и updatedAt в моем проекте.

Затем я начал думать: при каких обстоятельствах нам нужно было бы знать, когда запись впервые создана, не последнее обновление достаточно?

ответ

1

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

2
  • , чтобы иметь возможность сортировать записи по последним/старейшей
  • , чтобы иметь возможность отображать информацию об объекте (например, user asked 10 mins ago)
  • , чтобы иметь возможность анализировать данные (например, чтобы проверить, в какое время вопросы спрашивается)
  • супер полезно, когда вы хотите отслеживать/отладки/проверки того, что происходит в нашей системе

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

+0

Это все прецеденты для updated_at ... но они не применяются к created_at – ardochhigh

+0

hmm, не уверен, что я понимаю - как вы можете сортировать записи по старейшим/новейшим с помощью 'updated_at' и получать информацию о том, когда она была впервые создана ? или вы планируете хранить всю историю обновлений временных меток? Который, да - может быть хорошей идеей в некоторых случаях и необходим в других, но усложнит запросы/методы, поэтому избегайте того, чтобы на одном небольшом поле стоило этого. – basiam

1

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

Просто принимая StackOverflow в качестве примера:

Зная, когда был задан вопрос очень важен. Если вы задали этот вопрос два года назад и затем отредактировали его вчера, это сильно отличается от того, что вы вчера его спросили.

Важно знать, когда был дан ответ. Подумайте о некоторых значках. «Любопытно: задайте хорошо принятый вопрос в течение 5 отдельных дней и сохраняйте положительную запись вопроса». Что делать, если кто-то повторяет все мои вопросы, которые запускают updated_at для установки на сегодняшний день. Затем я ушел от вопросов в разные дни, чтобы они ответили в тот же день.

Это всего лишь два примера. Общий ответ: всякий раз, когда вы хотите знать, когда объект сначала существовал в вашей системе, вы хотите created_at. Особенно, если вы собираетесь обновлять этот объект.

+0

Что не хватает в простой updated_at, это история изменений ... сохраняется только самое последнее изменение. Таким образом, в то время как created_at дает вам дополнительную информацию, по-прежнему сохраняется большое количество данных с этим методом. – ardochhigh

+0

Предоставление истории изменений - гораздо более сложная проблема, которая не является чем-то, что вы хотели бы предоставить из коробки с рельсами (обычно). Есть проблемы с камнями, которые решают эту проблему, хотя, например, https://github.com/airblade/paper_trail – Shadwell

Смежные вопросы