Что я получу, добавив столбец отметки времени с именем recordversion в таблицу в ms-sql? - PullRequest
1 голос
/ 21 ноября 2008

Что я получу, добавив столбец отметки времени, называемый версией записи, в таблицу в ms-sql?

Ответы [ 4 ]

5 голосов
/ 21 ноября 2008

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

Допустим, пользователь A извлекает запись 1, и в то же время пользователь B восстанавливает запись 1. Пользователь A редактирует запись и сохраняет ее. Через 5 минут Пользователь B редактирует запись - но не знает об изменениях пользователя A. Когда он сохраняет свои изменения, вы используете столбец версии записи в предложении «где обновить», которое не позволит пользователю B перезаписать то, что сделал пользователь A. Вы можете обнаружить это недопустимое условие и выдать ошибку типа устаревших данных.

1 голос
/ 25 ноября 2008

Метка времени в основном используется для репликации. Я также успешно использовал его, чтобы определить, обновлялись ли данные со времени последнего канала клиенту (когда мне нужно было отправить дельта-канал), и, таким образом, выбирать только те записи, которые изменились с тех пор. Это требует наличия другой таблицы, в которой хранятся значения метки времени (в поле varbinary) во время запуска отчета, чтобы вы могли использовать его для сравнения при следующем запуске.

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

1 голос
/ 21 ноября 2008

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

CreatedBy(varchar) | CreatedOn(date) | ModifiedBy(varchar) | ModifiedOn(date)

Хотя он не дает вам полной истории, он позволяет вам знать, кто и когда создал запись, а кто и когда в последний раз ее изменил. Эти 4 столбца создают довольно мощные возможности отслеживания без каких-либо серьезных накладных расходов на вашу БД.

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

1 голос
/ 21 ноября 2008

Ничего из того, что я знаю или что Google, похоже, быстро находит.

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

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