VK Video
Какой тип доступа установлен по умолчанию?
Тип одновременного доступа называется актуальность.
Определяет, как система должна реагировать при одновременных действиях в одной таблице нескольких пользователей.
По умолчанию установлена в — нестрогое
.
Что произойдет, если два пользователя по очереди изменят одно и то же поле?
По разному в разных режимах:
необязательное
и необязательное без показа
— пользователь на милисекунду позже нажавший сохранить перезапишет данные первого. Если к полю были прикреплены действия, то они сначала выполнятся для первого, а потом еще раз для второго пользователя.
строгое
— второму пользователю будет отказано в редактировании. Ему надо будет обновить таблицу и попробовать еще раз.
без отслеживания
— аналогично необязательно
, но действия начнут выполнятся одновременно с непредсказуемыми последствиями.
Как увидеть, что таблица была изменена другим пользователем с момента ее открытия?
Нотификация в верхнем правом углу экрана.
Для режимов нестрогое без показа
и без отслеживания
она не показывается.
нестрогое без показа
— ставится в том случае, когда с таблицей бедет работать несколько пользователей, но они будут работать каждый со своими строками и им не надо видеть, что другой пользователь внес в таблицу изменение.
без отслеживания
— ставится для нагруженнх таблиц в которые идет односторонняя запись, или запись и изменение четко разделены и не могут пересечься.
Нотификация будет показана и в таком случае:
Пользователь 1
в Таблице 1
внес изменение вызвавшее действие (о них будет позже), которое изменило данные в Таблице 2
.
Пользователь 2
в этот момент смотрит в Таблицу 2
— он увидит нотификацию, что эта Таблица 2
была изменена Пользователем 1
.
Как запретить вносить изменения в неактуальную таблицу?
Поставить для нее строгое
соответствие.
Как действия выполняемые кодами проверяют, что они взаимодействуют с актуальными данными?
Для всех кроме Без отслеживания изменений
действует автоматический перезапуск действий и кодов. Пример:
1.1. — В момент запуска они оба взяли код отслеживания изменения таблицы — updated
.
updated
.2.1. — Убедившись что в updated
небыло изменений записало обновленные данные в Таблицу_1 и изменило ее updated
.
updated
таблицы.3.1. — Проверка updated
не прошла, тк действие_1 его изменило, поэтому транзакция действия_2 откатывается и оно запускается повторно с повторным получением данных.
Что происходит с кодом, если он столкнулся с изменением таблицы пока выполнял вычисления?
Он перезапускается во всех режимах кроме без отслеживания
.
Как отключить отслеживание одновременного доступа?
Поставить без отслеживания
!
Для каких таблиц это актуально?
Для таблиц в которые идет односторонняя запись.
Для таблиц в которых запись и последующие действия гарантировано разнесены по времени.
Для таблиц циклов (про это будет дальше в курсе).
Как отключить только информирование об изменениях?
Поставить нестрогое без показа нотификаций
!