Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 多用户和多文档之间的Couchdb/DB关系_Javascript_Database_Database Design_Couchdb_Pouchdb - Fatal编程技术网

Javascript 多用户和多文档之间的Couchdb/DB关系

Javascript 多用户和多文档之间的Couchdb/DB关系,javascript,database,database-design,couchdb,pouchdb,Javascript,Database,Database Design,Couchdb,Pouchdb,我这里有一个问题: 我正在开发一款手机应用程序,它需要一个离线工作的用户 我想采用CouchDB/PockDB解决方案。但要做到这一点,我需要知道如何将我的数据放入noSQl datatbase(之前的MySQL用户…)。所以,nosql对我来说是新事物,但它似乎很有趣 所以我的应用程序有一个连接部分,所以是一个用户数据库。每个用户都有附加到他的文档。但是许多用户可以有许多文档(共享文档)。我想复制一个用户的数据(他的信息+移动应用程序上的文档) 我的想法是: 每个数据库一个。一个用于所有文档的

我这里有一个问题: 我正在开发一款手机应用程序,它需要一个离线工作的用户

我想采用CouchDB/PockDB解决方案。但要做到这一点,我需要知道如何将我的数据放入noSQl datatbase(之前的MySQL用户…)。所以,nosql对我来说是新事物,但它似乎很有趣

所以我的应用程序有一个连接部分,所以是一个用户数据库。每个用户都有附加到他的文档。但是许多用户可以有许多文档(共享文档)。我想复制一个用户的数据(他的信息+移动应用程序上的文档)

我的想法是:

每个数据库一个。一个用于所有文档的数据库,该数据库使用服务器筛选,仅发送属于用户的文档

在客户方面,我只需要打电话:

var localDB = new PouchDB("myuser");
var remoteDB = new PouchDB("http://128.199.48.178:5984/myuser");
  localDB.sync(remoteDB, {
    live: true
  });
在客户端,我会有这样的东西:

{
    username: "myuser",
    birthday : "Date",
    documents : [{
        "_id": "2",
        "szObject": "My Document",
    },
    {
        "_id": "85",
        "szObject": "My Document",
    }]
}
您是否认为使用Couchdb和PockDB可以实现类似的功能,如果可以,我的想法是否正确?
我了解到每个文档有一个数据库不是问题,但我不知道复制是否能像我想象的那样工作,因为Plain CouchDB没有任何每个文档的访问选项,但这些可能是您的解决方案:

A.创建一个视图,然后用过滤器将邮袋同步到沙发上。但是,尽管这只会同步用户应该看到的文档,但是任何有足够知识的人都可以修改代码并查看其他人的文档,或者只是对数据库做任何实际操作(可能不是您要找的)

B.创建一个包含所有文档的主数据库,然后为每个用户创建一个数据库,并在主数据库和每个用户数据库之间创建一个过滤复制。这可能是最简单、最恰当的处理方法

C.不幸的是,没有一个validate_doc_读取(因为有一个validate_doc_更新),但也许你可以制作一个简单的HTTP代理,它将解析传入的JSON,检查特定用户是否可以查看它,如果不能,抛出一个403。您还必须捕获使用include\u docs=true进行查询的任何视图


(迟来的回复,我希望它仍然有用-或者如果没有,你找到了一个解决问题的好方法)

谢谢你的回答我认为你对B解决方案的看法是正确的我会试试下一个弱点你知道答案B吗?您是否将主数据库与所有用户数据库同步?您是否通过每个用户数据库等进行循环?