Пользователи могут редактировать документ на сервере либо в локальной реплике.
Агенты на сервере могут менять ряд полей документа.
Задача избежать конфликтов репликации и сохранить корректность данных.
Предлагаемое решение
1. Установить для документа $ConflictAction = "3" merge\no conflicts
2. Условно разделить поля документа на 2 части: а) поля пользователя (формы) и б) поля сервера (например с префиксом s_ )
3. Поля формы показываются и могут редактироваться пользователем, поля сервера показываются только через CFD поля и редактируются сервером.
4. Документ создается как обычно.
5. При редактировании документа, при его сохранении, документ не сохраняется как обычно, а находится через вид его документ в базе и туда перезаписываются все поля документа, за исключением полей сервера "s_"
Таким образом исключаются конфликты репликации, кто позже сохранил (пользовательские поля) тот и прав, поля измененные сервером автоматически остаются нетронутыми.
Что вы думаете об этой идее?
Конкретная задача - база данных на сервере также является интернет-сайтом. Для некоторых страниц необходимо вести подсчет просмотров уникальными пользователями.
Сейчас подсчет ведется в связанном документе, чтобы избежать конфликтов репликации. По мне это уменьшает производительность, так как постоянно надо подтягивать этот связанный документ.
Думаю что вышеприведенный подход позволит вести статистику в самом документе, без всяких дополнительных.
Какие могут быть подводные камни?
Заранее благодарю.
Агенты на сервере могут менять ряд полей документа.
Задача избежать конфликтов репликации и сохранить корректность данных.
Предлагаемое решение
1. Установить для документа $ConflictAction = "3" merge\no conflicts
2. Условно разделить поля документа на 2 части: а) поля пользователя (формы) и б) поля сервера (например с префиксом s_ )
3. Поля формы показываются и могут редактироваться пользователем, поля сервера показываются только через CFD поля и редактируются сервером.
4. Документ создается как обычно.
5. При редактировании документа, при его сохранении, документ не сохраняется как обычно, а находится через вид его документ в базе и туда перезаписываются все поля документа, за исключением полей сервера "s_"
Таким образом исключаются конфликты репликации, кто позже сохранил (пользовательские поля) тот и прав, поля измененные сервером автоматически остаются нетронутыми.
Что вы думаете об этой идее?
Конкретная задача - база данных на сервере также является интернет-сайтом. Для некоторых страниц необходимо вести подсчет просмотров уникальными пользователями.
Сейчас подсчет ведется в связанном документе, чтобы избежать конфликтов репликации. По мне это уменьшает производительность, так как постоянно надо подтягивать этот связанный документ.
Думаю что вышеприведенный подход позволит вести статистику в самом документе, без всяких дополнительных.
Какие могут быть подводные камни?
Заранее благодарю.