Симметричны - разрешение конфликтов
-
23-12-2019 - |
Вопрос
Я пытаюсь реализовать многоразовую двунаправленную синхронизацию для одного центрального узла и многих клиентов, использующих симметрии. Клиенты общаются только с центральным узлом (звездная топология). У меня проблемы с рецензией с конфликтами в первичных ключах.
Например, база данных содержит таблицу "человек" с идентификатором столбцов, именем, ... в центральной БД у меня есть строки:
- aaa
- bbb
- ccc
- aaa
- bbb
- ccc
- ddd
- aaa
- bbb
- ccc
- eee
- aaa
- bbb
- ccc
- ddd
- eee
Первый клиент подключается и загружает начальную нагрузку, поэтому у него есть такая же БД. Второй клиент делает то же самое.
Теперь первый и второй клиенты создают новую строку в их локальной БД. Во-первых:
Второе:
Они попробуют синхронизировать, но есть конфликт в 4. ряд. Этот конфликт может быть легко обнаружен в симметрии, но теперь я хочу решить его с помощью Key, пока он не вставлен, а затем отправить изменения обратно на клиентов ... Итак, результат будет:
в каждой базе данных. Как это можно сделать? Спасибо.
Решение
При работе с многоразонным двунаправленным сценарием это не хорошая идея для использования автоматического увеличения PK.
Стандартная практика заключается в создании GUID для PK, чтобы избежать конфликтов между вашими клиентами.
Смотрите следующий сайт для более подробной информации.
Выбор соответствующего первичного ключа для распределенной среды >