Najlepsze podejście do przechowywania wielu danych użytkownika dla każdego użytkownika na bazę danych. Używam tego samego podejścia.Jak zarządzać synchronizacją pouchdb i couchdb?
Mam couchdb na serwerze i pouchdb dla aplikacji mobilnej. Utrzymuję dane każdego użytkownika, tworząc osobną bazę danych dla użytkownika w pouchdb i couchdb. To oznacza, że mam wiele baz danych w couchdb i jedną bazę danych w pouchdb.
zwykle w bazie danych bazy danych sqlbase jest przechowywana w różnych tabelach.
tak w nosql pouchdb tworzę dokument dla każdej tabeli.
rzeczywisty problem jestem stoi to:
Mam jeden dokument w każdej bazy danych, która przechowuje transakcji użytkownika.
Transakcja klienta jest przechowywana w pouchdb, gdy jest ona w trybie offline, a aplikacja pobiera synchronizację transakcji on-line z bazą danych użytkownika couchdb w dokumencie transakcji.
dane są przechowywane w dokumencie transakcji jest następująca
{
"_id":"transaction ",
"_rev":"1-3e5e140d50bf6a4d873f0c0f3e3deb8c",
"data":[
{
"transaction_id":"tran_1",
"transaction_name":"approve item",
"status":"Pending",
"ResultMsg":""
},
{
"transaction_id":"tran_2",
"transaction_name":"approve item",
"status":"Pending",
"ResultMsg":""
}]
}
Wszystko to transakcja wykonywana jest po stronie serwera, a wynik jest aktualizowana w tych document.when kiedykolwiek każda nowa transakcja wykonywana i przechowywać go w dokumencie transakcji w danych atrybut.
Teraz mam 1 transakcji w etui i couchdb oznacza, że oba są zsynchronizowane.
Teraz, gdy aplikacja mobilna jest w trybie offline, wykonuje transakcję offline, która jest przechowywana w dokumencie transakcyjnym pouchdb.
i po stronie serwera, że 1 transakcja została zaktualizowana do sukcesu.
Teraz, gdy aplikacja przechodzi do trybu on-line i wykonuje synchronizację, tracę zmiany po stronie serwera, a na końcu dane w dokumencie transakcyjnym są jako klient pouchdb.
Tutaj tracę dane po stronie serwera. więc co to jest dobre podejście lub jak mogę to rozwiązać.
Jestem również świadomy tego podejścia i najlepiej, ale mam wiele dokumentów w bazie danych użytkowników, takich jak transakcja.więc czy powinienem używać oddzielnego dokumentu dla każdego rekordu? i jak zarządzać wieloma danymi tabeli? możesz mi wyjaśnić, że jestem zdezorientowany. –
Możesz mieć oddzielny dokument dla każdej kombinacji sesja-urządzenie - a każdy dokument zawiera kilka rekordów transakcji, które później są mapowane w celu uzyskania ostatecznego stanu transakcji. To podejście a) generuje mniej dokumentów (liczba dokumentów w DB wpływa na wydajność w kieszeniach); b) generuje mniejszy ruch; c) nie powoduje konfliktów. – ermouth