2016-09-19 41 views
0

我正在使用PouchDB + CouchDB在當前正在開發的角度應用程序中存儲和同步數據。數據是按用戶存儲的,包含諸如用戶權限/設置,最近查看的內容和購物車項目等內容。用戶數據的PouchDB/CouchDB使用/架構

目前,我有一個CouchDB數據庫,其中包含每個用戶的文檔。儘管此結構適用於快速檢索用戶特定的數據,但它在邏輯上存在缺陷,因爲所有用戶文檔都會同步到訪問該應用程序的任何設備。換句話說,我最終只需要當前登錄的用戶數據進行同步。

所以,我的問題是,我應該爲每個用戶創建一個Couch數據庫,而不是爲每個用戶使用一個帶有doc的單個數據庫?或者有更好的方法去解決這個問題嗎?

+0

您是否嘗試過設置拉式過濾器? –

+0

@MichaelPickett不,我沒有,你能指點我一個例子或文檔?是否使用設計文檔查詢完成了拉式過濾器? – Jbird

+2

繼承人的東西,我發現可能有助於https://pouchdb.com/2015/04/05/filtered-replication.html –

回答

0

如果你看看pouchdb-authentication插件,你會發現你可以在_user數據庫中存儲用戶的元數據。這可能是你需要的一切。

+0

這可能適用於最小用戶元,但在處理用戶保存的購物車,位置數據,交易歷史記錄,應用設置等情況下,如果不是多個數據庫,則需要多個文檔。我最終爲每個用戶使用單個文檔,並使用過濾器來選擇性地僅將登錄的用戶數據同步到他們的設備。 – Jbird

+0

「每個用戶的數據庫」是CouchDB的標準做法,因此將「購物車」數據等內容存儲在用戶數據庫中是有意義的,因爲這不是「用戶」元數據。這只是應該存儲在用戶數據庫中的數據。 「_user」數據庫旨在提供用於驗證用戶身份和存儲「元數據」(如他們的姓名,地址等)的內置功能。它不打算用於存儲用戶數據。 –