У меня есть централизованно размещенная база данных (MS SQL Server) и распределенные клиенты сохраняют данные в Интернете через Интернет. Когда подключение к Интернету идет вниз, клиент начинает хранить новые данные локально в экземпляре SQLite. Когда интернет-соединение возвращается в сеть, накопленные локальные данные перемещаются в центральный db (вставлены).Лучший способ создания уникальных идентификаторов для распределенных данных, которые будут объединены?
Каков наилучший способ обработки уникальных идентификаторов в этом сценарии? Другая важная информация:
Местные клиенты могут вспомнить свои локальные БД идентификаторов для связывания целей в автономном режиме; поэтому локальные идентификаторы должны генерироваться как глобально уникальные.
уникальный идентификатор в локальной базе данных не должен изменяться при объединении обратно в центральный бит.
В зависимости от устройства могут быть выбраны различные типы баз данных для локальных операций в будущем. JavaDb, TextFileDb и т. д .; поэтому я считаю, что для этого решения не нужно использовать одну проприетарную функцию db.
- Когда изменения объединены с центральным db, все записи должны иметь уникальные идентификаторы.
Для этого вопроса предполагают простую таблицу с именем MyTable
с полями: ID
(первичный/уникальный ключ любого типа, который должен быть) и Field1
, Field2
, Field3
Последние не имеет большого значения.
Первое, что пришло в голову - использовать GUID. Есть ли образец или практика, которые лучше этого или лучший способ осуществить это?
Edit: Использование Microsoft .NET и ADO.NET
Ваше предположение верный. Я добавил теги [ado.net] и [.net] –
Sync Framework - это направление, которое я возьму. Благодарю вас за предложение. Раньше я не слышал об этой технологии. Чтобы получить обзор Sync на высоком уровне, это радио-шоу .NET Rocks было полезно для меня: http://www.dotnetrocks.com/default.aspx?showNum=499 –