Как вы синхронизируете базы данных, используя MS Sync Framework, когда таблицы используют столбец идентификаторов, и вам нужно сопоставить произвольный ключ - PullRequest
1 голос
/ 25 августа 2011

Извините за длинный и запутанный заголовок.

У меня есть клиент, который хочет синхронизировать три базы данных.(Позже это может быть больше.) Все данные во всех трех базах данных должны синхронизироваться со всеми остальными.Это вовсе не обязательно должно быть в режиме реального времени, но, вероятно, будет работать ночью или что-то в этом роде.

Эта база данных использует столбцы идентификаторов в качестве первичных / внешних ключей.

Проблема в том, что данная запись может быть добавлена ​​независимо в две (или даже более) базы данных, но могут быть одинаковыми данными.Так, например, у меня может быть имя клиента Джон Смит из 123 Main Street, созданное в обеих базах данных сайта.В этом случае я бы хотел, чтобы FirstName LastName и первые 8 символов адреса (или, возможно, телефонный номер) формировали «ключ совпадения» для объединения записей вместо добавления новых каждый раз.Другими словами, после того, как вся синхронизация завершена, я бы хотел, чтобы на всех трех базах данных была только ОДНА запись для Джона Смита на Главной улице, 123.

Кстати, то, как я думал об этомимеет одну «основную» базу данных, размещенную в облаке.Все три базы данных будут выполнять двухстороннюю синхронизацию с этой основной базой данных.

Мой главный вопрос: как бы вы заставили это работать?Как вы определяете «ключ соответствия» для таблиц в базе данных.Это так же просто, как создать уникальные ограничения для ключей соответствия?Есть ли способ сделать это без изменения схемы БД?(Я хочу учесть это, но база данных является третьей стороной и может быть изменена.)

Сет

1 Ответ

5 голосов
/ 25 августа 2011

если вы можете добавить дополнительный столбец, создайте новый столбец на основе "ключа соответствия", который вы указали выше.Затем настройте Sync Framework на использование этого столбца в качестве PK и игнорирование фактических PK в таблице.

подход должен быть похож на этот пост:

Часть 3. Синхронизация таблиц, в которых первичные ключи клиента и сервера различаются

...