POS应用的CouchDB设计



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

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

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

  • 登录到我的应用程序时,username&根据许可证数据库验证密码。如果他们是有效的应用程序将连接他们自己的公司数据库
  • 每当用户创建新公司时,就会创建新的数据库,他们所有的位置、发票、付款都在自己的数据库中
  • 许可证数据库负责用户帐户、付款及其计划和安全级别(他们可以访问/编辑哪个屏幕)
  • 该应用程序使用PouchDB提供离线支持。相关位置详细信息被下载到用户浏览器,并同步回服务器数据库

问题:

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

关于这个软件设计,我还应该考虑什么

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

最新更新