从 Couchdb 返回用户特定数据

Nat*_*att 2 php jquery couchdb pouchdb

背景:我有一个 mysql 数据库,我将把它移到 couchdb 中,该数据库中有一些表、“书籍”和“用户”。我通过登录表单登录到 Web 应用程序,当前在 php 脚本中发布用户名和密码,然后让用户登录并将 php 会话写入该用户的用户表。现在,当用户请求书籍时,我 a) 确保 php 会话对用户有效,然后使用登录的用户 ID 获取用户可以查看的书籍。

问题:您将如何在 couchdb 中复制这种特定于用户的记录查询?我假设 couchdb 的全部意义在于能够说http://somesite.com/couchdb/getBooks/并且该 db 端点返回书籍。

也许我只需要在最后传递一个 sessionid?http://somesite.com/couchdb/getBooks/?s=123123但是我从哪里获得会话?嗯。

任何谈论这个的方向或文章都会很棒。

nla*_*son 5

在 CouchDB 中处理用户特定的数据实际上是一个相当复杂的话题,但我试图在这里总结一些不同的策略。

长话短说:如果您想在 CouchDB 中拥有用户私有数据(听起来像您这样做),最好的方法是拥有一个服务器端守护程序,为每个用户分配一个数据库,并且用户在其中拥有完全权限数据库。(这可以扩展到 > 100k 用户,所以不用担心。)然后你只需将该数据库与 PouchDB 同步。

上面的链接有一些第三方项目实现了这样的守护进程。还有Janus,它还没有准备好,但是一旦准备好,它将完成上述所有操作,并与 PouchDB 很好地集成。