По-французски мы называем эту проблему контроля параллелизма принципом чашки кофе .На английском должно быть то же самое, не так ли?
Вот принцип.Давайте представим систему управления больницей.Врач использует приложение, чтобы отобразить пациента и изменить его.Прежде чем нажать на « Update », он уходит на кофе.Другой доктор отображает того же пациента в своем клиентском приложении и нажимает « Обновление ».Когда первый доктор вернулся, он нажимает « Обновление ».Вот проблема: какое обновление должно быть принято?Действительно, это риторический вопрос: это разработчик / архитектор, чтобы ответить на него.
Единственное решение, о котором я думаю, это добавить столбец " locked " в мои таблицы.Я устанавливаю логическое значение на true , когда получаю Пациент для обновления, и устанавливаю его на false , когда я только что обновил его.Любой « Get for update » проверит, установлено ли « locked » на false , чтобы разрешить запись.
Вы видите какие-либо проблемы, используяэто решение?