2017-04-18 91 views
6

Pochodzę z tła Mysql i używam teraz Pouchdb. Jestem przyzwyczajony do wzorca SQL posiadającego 1 bazę danych i wiele tabel na aplikację.Czy tworzenie wielu baz danych PouchDB w tej samej aplikacji, która została uznana za złą konstrukcję?

W pliku pouchDB jest inny, ponieważ dane nie są przechowywane w tabelach, ale w dokumentach. Tak więc, w moim app, mam bazę danych dla zadań, stworzony z:

var db = new PouchDB('tasks', {revs_limit: 1, auto_compaction: true}); 

Jest to główny bazy danych dla mojej aplikacji, ale teraz muszę również zapisanie ustawień, takich jak „LAST_VISIT_DATE”, „language_preference” i inni.


Więc mam 2 pytania:

  1. należy utworzyć tylko jedną bazę danych, a następnie przechowywać różne dane
    zestawy w podrzędnych obiektów lub mogę utworzyć wiele baz danych, aby przechowywać te dane są jakieś wady na drugiej opcji?
  2. Jeszcze nie dostałem do synchronizacji z cloudant lub couchdb jeszcze, ale będę musiał w przyszłości. Czy jeśli mam dwie bazy danych (lub więcej), proces synchronizacji będzie bardziej skomplikowany, wolniejszy lub gorszy?
+0

Nie, NIE jest to zły projekt, w rzeczywistości jest to [droga do celu] (https://mail-archives.apache.org/mod_mbox/couchdb-user/201401.mbox/ <52CEB873.7080404 @ ironicdesign.com>) z CouchDB. – user3405291

Odpowiedz

7

jest tworzenie wielu baz danych PouchDB na tej samej aplikacji rozpatrywanym zły projekt?

Jednym słowem: Nie

Długa odpowiedź: Bazy danych w couchdb/PouchDB są zasadniczo wolne. Niektóre projekty aplikacji wymagają wielu baz danych.

Weź pod uwagę teoretyczną aplikację offline/aplikację mobilną śledzącą sprzedaż agenta. Może mieć bazę danych do celów zarządzania zapasami, która jest zsynchronizowana z centralnym serwerem CouchDB.

Najprawdopodobniej będzie również dostępna baza danych dla poszczególnych agentów wraz z informacjami o kliencie i sprzedaży dla danego agenta.

Aplikacja PouchDB będzie potrzebować obu baz danych. A ze względu na konstrukcję CouchDB, nie ma (łatwego, rozsądnego) sposobu przechowywania tych zestawów danych w tej samej bazie danych i utrzymywania rekordów agenta oddzielnie od siebie.

Bazy danych w CouchDB/PouchDB są bardziej podobne do tabel niż bazy danych w RDBMS.

Jedynym rzeczywistym czynnikiem ograniczającym tworzenie dodatkowych baz danych w PouchDB (co nie dotyczy CouchDB) jest to, że nie ma łatwego sposobu na wyświetlenie istniejących baz danych, z wyjątkiem korzystania z plugin. To nie musi być prawdziwe ograniczenie - po prostu trzeba pamiętać, które bazy danych zostały utworzone (prawdopodobnie nie powinno się programowo tworzyć losowo nazwanych baz danych ... ale i tak prawdopodobnie byłby to zły projekt; -))