2017-03-16 82 views
1

我有一個離線就緒的應用程序,目前我正在使用電子技術構建。限制PouchDB中的數據

核心要求是所有數據都是有限制的(必須是用戶讀取或寫入的),並且在該數據中,一些數據被進一步限制爲用戶(帳戶信息,消息等等)

現在我想要的任何數據離線用戶應該訪問(這是因爲所有的數據可以使用devtools無論限制可以看出)複製所以基本上我只是想將數據同步到PouchDB的離線商店,如果該用戶有權訪問它以及所有用戶有權訪問的所有數據。

現在我已閱讀以下文章/指南,但我仍然有點困惑。

從我的理解過濾是一個不錯的選擇性能明智的,即使它可以做我想做的。

建立一個代理會工作,但它基本上成爲一個REST API,數據同步崩潰。

而我認爲最終的選擇是我想要的是爲每個用戶提供一個數據庫,這些用戶將包含他們的私人信息,然後使用額外的數據庫來存儲可供每個用戶使用的信息。

唯一真正的問題我有這種做法的數據是如何處理的是私人使用,但兩個用戶之間共享(郵件等)

我更該怎麼數據的總體視圖後應被存儲而不是代碼示例,只是真正與應用程序的概念架構苦苦掙扎。

回答

0

您的問題有很多解決方案。一種解決方案看起來非常有前途:IBM Cloudant已開始工作Cloudant Envoy,這是一個模擬CouchDB接口而不是簡單的REST API的代理。您可以在網站上閱讀更多關於Envoy over at ibm.com的信息。在Github上也有一個custom replicator for PouchDB

這裏還有一個blog post on Medium.com

這個想法和更老的Couchbase Sync Gateway一樣。雖然Couchbase與CouchDB有着共同的根源,但我沒有跟蹤他們是否仍然支持使用CouchDB進行復制。

最簡單的啓動方法是在服務器上爲每個用戶創建一個數據庫,並從共享數據庫中提取共享數據。如果您需要關於此解決方案的更多信息,請告知我們。

+0

這聽起來像是一個非常好的解決方案,感謝所有的信息,在這種情況下,我會用什麼來處理兩個用戶私有的數據(即消息),這將再次成爲一個單獨的數據庫? –

+0

如果消息不是應用程序的主要部分,則可以設置服務器端腳本,將傳出消息作爲傳入消息複製到收件人。但是,如果您的應用程序的主要用途是消息傳遞系統,則應考慮使用其他設置。 –