У меня есть централизованная база данных (MS SQL Server), и распределенные клиенты сохраняют в ней данные через Интернет. Когда интернет-соединение обрывается, клиент начинает хранить новые данные локально в экземпляре SQLite. Когда подключение к Интернету возвращается в оперативный режим, накопленные локальные данные перемещаются в центральную базу данных (вставлена).
Какой лучший способ обработки уникальных идентификаторов в этом сценарии? Другая важная информация:
Локальные клиенты могут запоминать свои локальные идентификаторы БД для связи в автономном режиме; поэтому локальные идентификаторы должны быть сгенерированы как глобально уникальные.
уникальный идентификатор в локальной базе данных не должен изменяться при слиянии обратно в центральную базу данных.
Различные типы баз данных могут быть выбраны для локальных операций в будущем в зависимости от устройства - например, JavaDb, TextFileDb и т. д .; поэтому я думаю, что ни одна запатентованная функция БД не должна использоваться для этого решения.
- Когда изменения объединяются с центральной базой данных, все записи должны иметь уникальные идентификаторы.
Для этого вопроса предположим простую таблицу с именем MyTable
с полями: ID
(первичный / уникальный ключ любого типа) и Field1
, Field2
, Field3
Последняя не совсем иметь значение.
Первое, что пришло на ум, - это использование GUID. Есть шаблон или практика, которая лучше этого или лучший способ выполнить это?
Edit:
Использование Microsoft .NET и ADO.NET