Я ищу советы и предложения о том, как синхронизировать данные между двумя базами данных.
Первая база данных — это SQL Server 2008 Express, которая работает на отключенных ноутбуках (без доступа к сети или Интернету). Вторая база данных (основная) — это VFP 9.0, работающая на сервере.
Когда пользователь подключает свой ноутбук к сети, я хочу, чтобы процесс синхронизации прошел.
Помимо различных механизмов баз данных, я должен принять во внимание следующие моменты:
- Таблицы не обязательно должны иметь одинаковую структуру
- Первичные ключи не совпадают (GUID в SQL Server и часто комбинация символьных полей в VFP).
- Синхронизация таблиц должна выполняться в определенном порядке, чтобы соблюдать отношения родитель-потомок.
- При некоторой вставке на стороне SQL Server должен быть сгенерирован новый первичный ключ и синхронизирован в таблице VFP.
- Должен быть сделан ряд проверок, и иногда требуется некоторая обратная связь от пользователя.
- Не все записи нужно синхронизировать
- Некоторые записи на SQL Server необходимо удалить после синхронизации.
- Необходимо учитывать удаленные записи с обеих сторон
- Необходимо внести минимальные изменения в базу данных VFP.
Возможно, есть и другие моменты, о которых я сейчас забыл, но я думаю, вы понимаете, с какой проблемой я сталкиваюсь. Я предполагаю, что прямо сейчас мне нужно будет создать собственный модуль синхронизации, но я хочу, чтобы вы внесли свой вклад, прежде чем я продолжу, на случай, если я пропустил некоторые варианты, и получить несколько советов о том, как подойти к этому.
Я быстро посмотрел на Microsoft Sync Framework, но со всеми ограничениями, которые у меня есть, и тем фактом, что у меня нет уже построенного клиента VFP (AFAIK), я не думаю, что это будет большой помощью.
Заранее благодарим за отзыв.
Обновление. Приложение для ноутбука представляет собой приложение C# WinForm и использует SQL Server 2008 Express.