POS 应用程序的 CouchDB 设计

CouchDB Design for POS applciation

我正在使用 couchdb 和 angular 创建 POS(销售点)应用程序。因为我是 NoSQL 世界的初学者。需要有关如何设计系统的指导。

应该是基于云的应用程序,登录用户可以在其中创建公司,每个公司有 n 个位置。

在关系数据库的意义上,我的数据库设计是这样的。

问题:

  1. 是否可以为每个公司创建数据库。
  2. 如果用户想要离线操作,他们可以只同步自己的位置数据(过滤复制),如果他们想要访问其他位置数据,应用程序应该连接云DB.Is可以吗?
  3. 我想要 query/insert couchdb 和 PouchDB 中数据的相同代码。可能吗?
  4. 是couchdb map-reduce/mango查询支持复杂报表
  5. Angular+Couchdb 是否足够,或者我是否需要任何服务器端 framework.I 现在没有任何第三方身份验证。
  6. 上面的关系数据库设计应该如何在couch db中实现

关于这个软件设计我还应该考虑哪些其他事情

  1. 是的。 CouchDB 的一种常见设计是为每个用户提供一个数据库。每个公司一个是完全合理的。
  2. CouchDB 支持过滤复制。您可以为本地数据库实例(PouchDB 或 CouchDB)上的用户文档设置过滤复制
  3. PouchDB 允许您连接到 CouchDB。基本上,您可以拥有一个执行所有业务操作的 PouchDB 库。您只需要更改云或客户端数据库的数据库适配器。
  4. Map/Reduce 非常简单。它允许您索引文档并通过它们的键查询它们。您可以轻松更改索引中的值,也可以使用 reduce 函数。 Mango 查询更灵活。有点类似于MongoDB.
  5. 您最终可能需要一个应用层,但仅使用 CouchDB 是可能的。