2010-06-23 2 views
0

Вопрос относительно прост.Лучшие практики Синхронизация больших объемов информации

У меня есть копии базы данных, которые запускаются на пользовательских компьютерах в MySql, и у меня есть база данных сервера, которая агрегирует информацию, которая хранится в этой клиентской базе данных, когда пользователь хочет «синхронизировать» эту информацию с сервером.

Вызов большой Databse сервераЗапрос Вызовите Databse хранится на клиентских компьютерах

Так я собираюсь посылать информацию от клиента к серверу и от сервера к клиенту. Есть ли причина, по которой я не хочу отправлять информацию от клиента на сервер в виде файла со всеми операторами sql, которые были выполнены на клиенте.

Так что скажем, что в клиенте я делаю некоторые обновления, вставки и удаления. Я записываю все те заявления, которые обрабатываются и отправляют их. Как дамп mysql.

Я полагаю, что моя единственная проблема - проблема с возвратом информации, которая уже была изменена на планшете, но мне придется иметь дело с этим независимо от того, как я отправляю информацию.

+1

Почему бы просто не хранить одну базу данных (на сервере) и не подключаться ли программное обеспечение к серверу? –

+0

, потому что клиент чаще всего находится в таком удаленном месте, что Интернет не будет доступен. Вот почему они синхронизируются. – Felipe

ответ

0

Есть ли причина, почему я не хотел бы отправить информацию от клиента на сервер в виде файла с все SQL заявления, которые были выполняются на клиенте.

Что делать, если я положил хороший DROP TABLE table или аналогичный в инструкции SQL? Вы не сможете этого избежать, если у вас нет какого-либо фильтра до, все идет в вашу основную базу данных. Но я бы не рекомендовал что-то подобное.

+0

, так лучше было бы быть чем-то вроде создания файла задания, отправки этого файла на сервер, позволяющего ему анализировать его и выполнять все запросы, в которых он нуждается? – Felipe

+0

Как предложил Джордж Штокер, сильная база данных будет лучшим способом сделать это. Если онлайн-соединение не всегда возможно, сохраните команды в клиентском приложении и когда он будет подключен к сети, отправьте все в API, который сможет обрабатывать входящие данные и соответствующим образом синхронизировать базу данных. – DrColossos