У меня есть таблица отношений родитель-потомок в моей базе данных (древовидная система), и у каждого потомка есть родитель, а у каждого родителя есть несколько потомков.
Мой бэкэнд — это PHP, а моя база данных — MySql, я получаю все строки моей таблицы (категории), а затем вставляю их все в indexedDB. и работать с этим так легко и хорошо.
Все ок, кроме синхронизации! Представьте, что у меня есть несколько пользователей, и все они редактируют только одну строку одновременно. Я получаю все строки таблицы и добавляю их в indexedDB при каждом обновлении (F5). Я имею в виду, когда пользователь получает страницу, все строки свежие, но когда пользователь редактирует строку, а другой пользователь также редактирует, они не могут видеть изменения, которые другие пользователи сделали.
Как выполнить синхронизацию в реальном времени с помощью PHP, MySql и dexie.js?
Dexie поддерживает CRUD крючки. Он будет перехватывать любые изменения в клиентской базе данных. На этом API можно построить синхронизацию с сервером. И клиент, и сервер должны отслеживать изменения и обмениваться изменениями, сделанными после определенной ревизии или отметки времени.
Есть дополнение к Декси под названием Dexie.Syncable это делает это для вас на стороне клиента. Это не стабильно, но попробуйте и посмотрите, решит ли это то, что вам нужно. Там есть пример реализации сервера в базе данных в памяти, чтобы использовать в качестве шаблона для построения серверной части.
Других решений пока нет …