Мы разрабатываем веб-приложение с серверной частью Oracle для бронирования конференц-зала.Кроме того - мы решили использовать оптимистическую блокировку, потому что ожидаем, что число коллизий будет на нижней стороне.
Теперь - в случае оптимистической блокировки всегда есть возможность «Данные уже изменены кем-то еще»"сценарий.
И наш пользовательский интерфейс включает в себя довольно много полей для ввода.И отображение сообщения, такого как «Данные уже были изменены», не является приятным опытом для конечного пользователя;особенно после того, как он / она введет, скажем, поле 15+.
Я думаю о том, чтобы отобразить «Вероятность столкновения», когда конечный пользователь начинает свой сеанс пользовательского интерфейса на основании первых нескольких записей, которые он / она вводит вUI.
Этот CP (вероятность столкновения) будет динамически рассчитываться с учетом сеансов базы данных, которые выполняются с данной таблицей / столбцами.
Например, если и лицо A, и лицоB просматривает информацию для конференц-зала X - тогда обеим сторонам будет показан более высокий CP (вероятность столкновения).
В таком случае - любой из них может решить подождать несколько секунд.Это будет лучше, чем повторно вводить все данные.
Теперь мой вопрос: в Oracle есть ли способ определить, какие сеансы идут против каких таблиц и ROWID?