存储多个用户数据的最佳方法是每个用户每个数据库。我正在使用这种相同的方法。如何管理pouchdb和couchdb同步?
我有服务器上的couchdb和移动应用程序的pouchdb。我通过在pouchdb和couchdb中为用户创建单独的数据库来维护每个用户数据。 That.That意味着我在couchdb中有多个数据库,在pouchdb中有一个数据库。
通常在sqlbase数据库中用户数据存储在不同的不同表中。
所以在nosql pouchdb我正在为每个表格创建文档。
我面临的实际问题是:
我在存储的用户交易的每个数据库都有一个文件。
客户交易存储在pouchdb当他/她处于脱机状态和应用程序中获取网上交易同步到CouchDB的用户数据库中的交易文件。
数据存储交易文档中如下是在服务器端执行
{
"_id":"transaction ",
"_rev":"1-3e5e140d50bf6a4d873f0c0f3e3deb8c",
"data":[
{
"transaction_id":"tran_1",
"transaction_name":"approve item",
"status":"Pending",
"ResultMsg":""
},
{
"transaction_id":"tran_2",
"transaction_name":"approve item",
"status":"Pending",
"ResultMsg":""
}]
}
所有这些交易,结果在这些document.when更新过任何新的事务执行我将它存储在数据事务文件属性。
现在我有在袋1个交易和CouchDB的两个装置都是同步的。
现在,当移动应用程序处于脱机它执行存储在pouchdb交易文档离线交易。
并且在服务器端1个事务更新成功。
现在,当应用程序进入上线,并同步执行我正在失去在交易文档我的服务器端更改和最终的数据是客户端pouchdb。
这里我正在丢失服务器端数据。那么什么是好方法或者我该如何解决它。
我也知道这种方法,这是最好的,但我有许多文件在用户数据库像交易。所以我应该为每条记录使用单独的文档?以及如何管理多个表格数据?你能解释我吗我对此感到困惑。 –
您可以为每个会话 - 设备组合拥有单独的文档 - 并且每个文档包含多个事务记录,这些事务记录稍后会进行映射缩减以获取最终事务状态。这种方法a)生成较少的文档(数据库中的文档数量影响袋性能); b)产生较少的流量; c)不产生冲突。 – ermouth