Через веб-службу обновите таблицу из другой таблицы, которая находится в другом месте - PullRequest
0 голосов
/ 29 июля 2010

У меня есть две разные базы данных.Одна из них, исходная база данных, а другая - кеш-база данных.

Эти базы данных находятся в другом месте.Один раз в день я должен обновить базу данных кеша из исходной базы данных.И я должен выполнить это обновление с помощью веб-службы, работающей на компьютере с исходной базой данных.

Я могу выполнить очистку всех таблиц Cache DB и вставку исходных данных в каждом процессе.Но я думаю, что это плохой сценарий.Так как я могу это обновление прогресса с эффективностью.И есть ли у вас предложения.

Ответы [ 2 ]

2 голосов
/ 29 июля 2010

Я почти уверен, что существуют технологии синхронизации БД, но поскольку у вас уже есть требование, я бы рекомендовал использовать журнал изменений.

Итак, у вас будет таблица «CHANGE_LOG», в которую вы будете вставлять строки всякий раз, когда будете «записывать» в свои таблицы (INSERT, UPDATE, DELETE). Раз в день вы можете применить эти изменения по одному к кеш-базе данных.

Удаление журнала изменений после его применения - это нормально, но вы также можете присвоить «версию» БД. Таким образом, каждое изменение в БД будет увеличивать номер версии. Это может быть использовано для управления несколькими базами данных.

Чтобы обеспечить дополнительную уверенность, например, в кеш-базе данных может быть триггер, который увеличивает свои собственные номера версий. Таким образом, ваш процесс может запросить кеш-базу данных и узнает, какие изменения необходимо применить, не поддерживая их в основной БД (таким образом, подключение новой кеш-базы данных, обновление сбойной кеш-базы данных тоже легко .).

Обратите внимание, что вам, вероятно, время от времени необходимо очищать журнал изменений.

0 голосов
/ 24 октября 2010

На мой взгляд, вам придется собирать все данные из исходной базы данных, так как у вас, похоже, нет способа запросить их, чтобы увидеть, какие данные изменились.Простой способ сделать это - скопировать все данные из исходной базы данных во временные или промежуточные таблицы в базе данных кэша.Затем вы можете сделать различие между обоими наборами таблиц и обновить записи, которые изменились.Или, как только вы получите все данные в промежуточных таблицах, удалите / переименуйте существующие таблицы и переименуйте промежуточные таблицы в имена существующих таблиц.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...