Мой вопрос:Mysql синхронизации реляционных баз данных
Как я могу синхронизировать 2 базы данных MySQL (отсутствует локальная база данных с главной онлайновой базы данных)?
проблема в базе данных реляционная, а идентификатор, как всегда, автоматически увеличивается, поэтому, если я просто синхронизирую с использованием вставки, это будет беспорядочно с моими рефералами.
это для приложения управления клиникой я сделал, проблема в настоящее время его на сервере, но иногда интернет-соединение идет вниз/медленно на моих пользователей клинику, так что мне нужно, чтобы позволить ему работать на автономном режиме (магазин каждую вещь - местный db) и синхронизация вручную (двунаправленная) с удаленной базой данных в конце дня. , поэтому в основном каждая клиника должна иметь свой собственный локальный дБ и позволить им все синхронизировать с центральным db
пример таблиц.
db.Cental.users
|id|user|clinic |
|01|demo|day care|
|02|nurs|er |
|03|demX|day care|
db.day care.users
|id|user|clinic |
|01|demo|day care|
|02|demX|day care|
(примечание ID обязательно не соответствуют между центральным и местным дб, но структура БД на обоих идентичен)
пример:
информация о базе данных:
У каждого пользователя много посещений, плагинов.
каждый визит содержат 1user как patient_id и 1user, как doctor_id
каждый плагин имеет один пользователь, много входов
plugin_inputs иметь один плагин
У меня 2 баз данных 1 на сервере и других размещенных локально - для автономного режима -
Я хочу, чтобы я мог синхронизировать локально db с онлайн-интерфейсом, но поскольку у меня есть более 1 пользователь, более одного локального db, поэтому каждый из них будет иметь одинаковые идентификаторы, тогда как онлайн-db должен содержать все из них вместе.
так как я могу их синхронизировать?
пользователя я PHP/MySQL (онлайн)/SQLite (местные)
Это не вопрос PHP, это вопрос MySQL. Плохая идея - сохранить 2 таблицы/базы данных, а затем объединить их позже и сделать еще больше хлопот. Возможно, вы должны использовать единую базу данных, а затем изменить настройки своего приложения, чтобы использовать один сервер базы данных. – Husman
@Husman php: incase Мне нужно использовать какой-то код для их синхронизации. Причина, по которой я ДОЛЖЕН пользовательских баз данных 2, заключается в том, что локальная база данных работает в автономном режиме, и пользователь синхронизирует ее, когда когда-либо интернет возвращается. как резервное копирование, и поэтому он может получить к нему доступ из любого места. – Zalaboza
Вам нужно перебрать все записи на локальном компьютере, затем для каждого (я бы рекомендовал экспортировать это как файл CSV или XML/json), вам нужно проверить, что он не существует в онлайн-базе данных, и затем вставьте его в новую запись. Это лучше всего делать, когда онлайн-база данных не используется много (то есть поздно ночью). Причиной для его экспорта в качестве файла xml/json/csv является возможность пакетной обработки, а кодирование упрощается с помощью структурированного формата данных. Надеюсь, это поможет. – Husman