Я видел несколько похожих вопросов, но ни один из них не отвечал этому сценарию.
У меня есть онлайн-приложение для оценки, которое представляет пользователям вопросы, по одному вопросу на страницу, и записывает их ответы.Пользователи могут перемещаться между вопросами, и их ответы автоматически сохраняются.
При переходе с одной страницы (вопрос Q1) на другую (вопрос Q2) база данных должна:
- ОБНОВЛЕНИЕответ этого пользователя на Q1 (если он существует) или ВСТАВИТЬ ответ на Q1.
- ВЫБЕРИТЕ ответ этого пользователя на Q2 (если он существует), чтобы заполнить страницу.
The [RESPONSE] таблица является предметом спора со многими пользователями одновременно чтения и записи.Однако каждый пользователь будет когда-либо читать и писать только в свои собственные строки .
. Это наводит меня на мысль, что я могу использовать (READUNCOMMITTED), и UPDATE с (NOLOCK) безопасно.Меня беспокоит то, что я не хочу ситуации, когда пользователь переходит на страницу вперед, а затем возвращается назад и получает старые данные до того, как они были обновлены.Я могу поместить две операции в транзакцию, но если я использую подсказки NOLOCK, это что-нибудь изменит?
Какую стратегию блокировки я могу использовать, чтобы уменьшить раздоры в этой таблице?
Мыв настоящее время на SQL2000.