Нужно предложение - Angular 4 с IndexedDB - PullRequest
0 голосов
/ 04 июля 2018

Нужно предложение! Разработка приложения с автономным хранилищем с использованием IndexedDB с Angular 4 для гибридного мобильного приложения. Хотя я уже реализовал операции CRUD и даже интегрировал свои REST API. Я застрял в моем дальнейшем подходе. Теперь вот моя постановка проблемы. 1) У меня есть, например, 2000 записей, поступающих из моей службы ReST, и я буду хранить их в моей IndexedDb приложения (браузера). Я буду отображать и редактировать записи на своей странице из локальной БД (проиндексированной) и сохранять после редактирования в самой локальной БД, т. Е. Все мои транзакции выполняются с использованием локальной индексированной БД. Как я могу управлять синхронизацией записей между локальной БД и основной БД, которые попадает в мое приложение? 2) Если какая-либо из этих 2000 записей будет обновлена, нужно ли синхронизировать всю основную базу данных с локальной базой данных? Или как я могу узнать, какие именно записи обновляются? Хорошо, наличие флага может решить проблему на некоторое время. Но необходимо выполнить двустороннюю синхронизацию. a) Отредактированные записи в индексированной БД должны быть синхронизированы с главной БД (я не могу синхронизировать всю свою проиндексированную БД с основной БД, я могу просто иметь флаги и синхронизировать только отредактированные записи с основной БД). б) Основная БД также может обновляться (любая из этих 2000 записей или в это время добавляется больше записей). Мне нужно синхронизировать основную БД с индексированной БД в локальной сети.

Как мне этого добиться? - Мне нужно знать подход к синхронизации и даже обновление отдельных отмеченных записей. Даже любое поле в записи обновляется - как мне настроить флаг?

Мне просто нужно знать подход к этому, кроме разработки кода. Заранее спасибо!

1 Ответ

0 голосов
/ 05 июля 2018

Мне просто нужно знать подход к этому, кроме разработки кода. Заранее спасибо!

Подход, который вы могли бы использовать, будет зависеть от выбора технологии, который у вас есть. Например, вы можете использовать базу данных, созданную с настройкой мастер / мастер, которая может работать в браузере, например Pouch DB . PouchDB построен для этого сценария.

Другой подход заключается в использовании шаблона неизменяемости, при котором вы не редактируете записи, просто вставляете их с версиями. Благодаря неизменяемости вы можете загружать свои данные на сервер и загружать данные с сервера в соответствии с вашей стратегией, т.е. когда клиент находится в сети и т. Д. в вашем коде вам нужно работать только с самым последним набором данных.

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

Или вы можете использовать веб-сокеты для синхронизации.

...