0

У меня есть Organization table и Site table в моей базе.Как я могу получить уникальный первичный ключ INT для таблицы, распределенной по нескольким географическим местоположениям, используя sql azure?

Приложение установлено на различных Geographical Sites, и каждый сайт имеет свою собственную локальную базу данных.

Я использую Sql Azure Synchronization Group для синхронизации всех данных Сайта один раз в неделю. Это нормально для всех других данных, чтобы синхронизироваться через неделю, но эта одна таблица Site - всякий раз, когда новый Сайт вставлен, мне нужен уникальный идентификатор для этого сайта - я знаю, что могу использовать GUID, который я использовал в других местах, но есть требование только для использования INT.

Если я использую INT, возможно, что тот же самый ключ INT вставлен в разные местоположения, что при синхронизации приведет к перезаписанию записей и утерянному Sites.

Что я могу сделать для того, чтобы иметь уникальный первичный ключ INT для каждой записи, вставленной в эту таблицу?

Пожалуйста, скажите мне любые возможные решения.

ответ

1

Это отдельные базы данных, поэтому единственный способ, которым SQL Azure предоставит уникальный идентификатор сайта, - это Guid. Возможно, вы могли бы создать простой сервис WCF для выдачи последовательных INT для вас, который вы вызывали перед созданием сайта (и, возможно, он сохраняет свой «следующий идентификатор» в строке таблицы или что-то в этом роде. Вам нужно будет сделать ваша служба WCF либо Singleton, либо способна выдавать несколько идентификаторов без повторного использования идентификаторов. У вас может быть случайный неиспользуемый сайт INT, поскольку возможно, что что-то пошло не так с кодом, вызывающим службу WCF, но если вы в порядке с пробелами в своих идентификаторах, это не имеет значения.