Односторонняя синхронизация базы данных с MySQL - PullRequest
1 голос
/ 10 августа 2011

У меня есть приложение на основе VFP с каталогом, полным DBF.Я использую ODBC в .NET для подключения и выполнения транзакций в этой базе данных.Я хочу отразить эти данные в mySQL, работающем на моем веб-хосте.

Примечания:

  • Это будет только одностороннее зеркало.VFP в mySQL
  • Должны поддерживаться только вставки и обновления.Удаление не имеет значения
  • Не все таблицы обязательны.Фактически, я бы предпочел использовать определенный оператор SELECT только для зеркального отображения псевдо-представлений необходимых данных
  • У меня нет такой роскоши, как штамп с модифицированным временем ни в одной записи VFP.
  • У меня нет тонны записей данных (может быть, всего несколько тысяч), и при этом у меня нет тонны одновременных пользователей на стороне MySQL, хотя я хочу быть максимально эффективным.

Предлагаемая стратегия для вставок (не кажется, что это плохо ...):

  • Создайте временную таблицу в MySQL, вставьте все первичные ключи таблицы / представления VFP.Я хочу отразить
  • Выполнить «SELECT primaryKey из tempTable не в (SELECT primaryKey from mirroredTable)» на стороне MySQL, чтобы определить отсутствующие записи
  • Создать и запустить необходимый INSERT sql для этих записей
  • Сдвиньте временную таблицу

Предлагаемая стратегия обновлений (кажется очень тяжелой, возможно, ломает открытые запросы на удаленной таблице mySQL):

  • Создать временную таблицу вmySQL и вставьте ВСЕ записи из таблицы / представления VFP. Я хочу отразить
  • Удалить существующую таблицу mySQL
  • Изменить имя tempTable на имя новой таблицы

Это всего лишьПервые стратегии, которые приходят на ум, я уверен, что есть более эффективные способы сделать это (особенно на стороне обновления).

Я ищу альтернативные стратегии здесь.Какие-нибудь блестящие идеи?

Ответы [ 2 ]

1 голос
/ 15 августа 2011

Звучит так, будто вы собираетесь что-то маленькое, но вы можете попробовать взглянуть на некоторые шаблоны проектирования репликации.Microsoft задокументировала некоторые шаблоны репликации данных здесь , и это хорошая отправная точка.Мое предложение состоит в том, чтобы проверить простую модель Move Copy of Data.

1 голос
/ 13 августа 2011

Ваши таблицы VFP находятся в базе данных VFP (DBC)?Если это так, вы должны иметь возможность использовать триггеры в этой базе данных, чтобы настроить информацию о том, какие данные необходимо обновить в MySQL.

...