Синхронизация в реальном времени MySql и IndexedDB

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

Мой бэкэнд — это PHP, а моя база данных — MySql, я получаю все строки моей таблицы (категории), а затем вставляю их все в indexedDB. и работать с этим так легко и хорошо.

Все ок, кроме синхронизации! Представьте, что у меня есть несколько пользователей, и все они редактируют только одну строку одновременно. Я получаю все строки таблицы и добавляю их в indexedDB при каждом обновлении (F5). Я имею в виду, когда пользователь получает страницу, все строки свежие, но когда пользователь редактирует строку, а другой пользователь также редактирует, они не могут видеть изменения, которые другие пользователи сделали.

Как выполнить синхронизацию в реальном времени с помощью PHP, MySql и dexie.js?

3

Решение

Dexie поддерживает CRUD крючки. Он будет перехватывать любые изменения в клиентской базе данных. На этом API можно построить синхронизацию с сервером. И клиент, и сервер должны отслеживать изменения и обмениваться изменениями, сделанными после определенной ревизии или отметки времени.

Есть дополнение к Декси под названием Dexie.Syncable это делает это для вас на стороне клиента. Это не стабильно, но попробуйте и посмотрите, решит ли это то, что вам нужно. Там есть пример реализации сервера в базе данных в памяти, чтобы использовать в качестве шаблона для построения серверной части.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]