Лучший способ синхронизировать базу данных клиента с базой данных сервера - PullRequest
0 голосов
/ 24 июня 2009

У меня есть приложение регистрации данных (c # /. Net), которое записывает данные в базу данных SQLite. Эта база данных постоянно записывается во время работы приложения. Также возможно архивирование базы данных и создание новой базы данных, когда размер базы данных SQLite достигает заранее определенного размера.

Я пишу веб-приложение для отчетности по данным. Моя веб-настройка c # /. Net с SQL Server. Клиенты смогут видеть свои собственные данные, собранные в Интернете, из своего экземпляра моего приложения.

В целях тестирования, чтобы загрузить данные для тестирования, я написал грубое и грязное приложение, которое в основном читает из БД SQLite, а затем вводит данные в SQL Server, используя SQL - я запускаю приложение один раз, чтобы заполнить БД SQL Server в сети.

Мое приложение написано на c # и является модульным, поэтому я могу добавить процесс, который периодически проверяет базу данных SQLite, а затем передает новые данные партиями на мой SQL Server.

У меня такой вопрос: если бы я хотел постоянно синхронизировать клиентские базы данных SQLLite с моим сервером, так как приложение регистрирует данные, каким будет лучший способ для этого?

Есть ли какая-нибудь технология / стратегия, которую я должен изучить здесь? Любые рекомендуемые методы?

Ответы [ 4 ]

1 голос
/ 05 августа 2009

Несколько вариантов приходят на ум. Вы можете добавить отметку времени к каждой таблице, из которой вы хотите скопировать, а затем выбрать строки, записанные после последнего обновления. Это быстро и будет работать, если вы заархивируете базу данных и начнете с пустой.

Вы также можете записать свои обновления для каждой таблицы в строку XML, которая описывает изменения, и сохранить их в новой таблице, которая обрабатывается как очередь.

0 голосов
/ 22 декабря 2016

На Github существует проект с открытым исходным кодом, также доступный на Nuget. Он называется SyncWinR, он реализует Sync Framework Toolkit для включения синхронизации с WinRT или Windows Phone 8 и SQLite. Вы можете получить доступ к проекту с https://github.com/Mimetis/SyncWinRT.

0 голосов
/ 25 июня 2009

Вы можете взглянуть на Sync Framework. Насколько сложна схема, которую вы хотите синхронизировать, и является ли она односторонней или данные должны возвращаться?

В качестве простого решения я бы посмотрел на экспорт данных в некотором формате с разделителями, а затем с помощью bcp / BULK INSERT перенести их на ваш центральный сервер.

0 голосов
/ 24 июня 2009

Возможно, стоит изучить концепцию доставки журналов

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