在pouchDB中它是不同的,因为数据不存储在表中而是存储在文档中.所以,在我的应用程序中,我有一个任务数据库,创建时:
var db = new PouchDB('tasks',{revs_limit: 1,auto_compaction: true});
这是我的应用程序的主数据库,但现在我还需要存储设置,例如“last_visit_date”,“language_preference”等.
所以,我有两个问题:
>我应该只创建一个数据库,然后存储不同的数据
在子对象中设置或者我可以创建多个数据库来存储这些数据第二个选项有任何缺点吗?
>我还没有与cloudant或couchdb同步,但我将来必须这样做.如果我有2个数据库(或更多),它会使同步过程更复杂,更慢或更糟吗?
解决方法
Is creating multiple PouchDB databases on the same application considered bad design?
总之一句:不.
答案很长:CouchDB / PouchDB中的数据库基本上是免费的.一些应用程序设计需要多个数据库.
考虑一个跟踪代理商销售情况的理论离线优先/移动应用程序.它可能有一个用于库存管理目的的数据库,它与中央CouchDB服务器同步.
它可能还有一个每个代理数据库,包含给定代理的客户和销售信息.
PouchDB应用程序将需要两个数据库.由于CouchDB的设计,没有(简单,明智)的方法将这些数据集保存在同一个数据库中,并保持代理的记录彼此分离.
CouchDB / PouchDB中的数据库更像是表,而不是RDBMS中的数据库.
在PouchDB中创建额外数据库(不适用于CouchDB)的唯一真正限制因素是,除了使用plugin之外,没有简单的方法列出现有数据库.这不一定是真正的限制 – 它只是意味着你需要记住你创建的数据库(你可能不应该以编程方式创建随机命名的数据库……但无论如何这可能是一个糟糕的设计.;-))