2016-09-19 27 views
0

私はPouchDB + CouchDBを使用して、現在開発中の角型アプリケーションにデータを保存し、同期させています。データはユーザーごとに格納され、ユーザー権限/設定、最近表示されたコンテンツ、カート項目などが含まれます。ユーザデータのPouchDB/CouchDBの使用法/スキーマ

現在、各ユーザーのドキュメントを含む単一のCouchDBデータベースがあります。この構造はユーザー固有のデータをすばやく取得するためにはうまく機能しますが、すべてのユーザードキュメントがアプリにアクセスするすべてのデバイスに同期されるため、論理的に欠陥があります。言い換えれば、最終的には、現在ログインしているユーザーのデータだけを同期させる必要があります。

私の質問は、ユーザーごとに1つのデータベースを使用する代わりに、各ユーザーのためにCouchデータベースを作成する必要があるということです。それともこれについてもっと良い方法がありますか?

+0

プルフィルタを設定しましたか? –

+0

@MichaelPickettいいえ、私は例や文書を教えてもらえますか?プルフィルタは設計のdocクエリで実現されていますか? – Jbird

+2

私が助けてくれるものが見つかりましたhttps://pouchdb.com/2015/04/05/filtered-replication.html –

答えて

0

pouchdb-authenticationプラグインを見ると、ユーザーのメタデータを_userデータベースに格納できることがわかります。それはあなたが必要なすべてかもしれません。

+0

これはユーザーのメタを最小限に抑えることができますが、ユーザーの保存カート、位置情報、取引履歴、アプリの設定などを扱う場合は、複数のデータベースが必要な場合は複数のドキュメントが必要になります。私は各ユーザーごとに1つの文書を使用し、フィルタを使用してログインしたユーザーデータのみを選択的にデバイスに同期させました。 – Jbird

+0

"ユーザごとのDB"はCouchDBの標準的な習慣であり、 "カート"データをユーザのデータベースに格納することは "ユーザ"メタデータではないので意味があります。これは、ユーザーのデータベースに格納する必要があるデータです。 "_user"データベースは、ユーザーを認証し、名前、住所などの「メタデータ」を格納するための組み込み機能を提供することを目的としています。ユーザーデータの格納には使用できません。 –

関連する問題