我来自Mysql背景,现在我正在使用Pouchdb。我已经习惯了每个app有1个数据库和多个表的SQL模式。
在pouchDB中它是不同的,因为数据不存储在表中而是存储在文档中。所以,在我的应用程序中,我有一个用于创建任务的数据库:
var db = new PouchDB('tasks', {revs_limit: 1, auto_compaction: true});
这是我的应用程序的主数据库,但现在我还需要存储设置,例如“last_visit_date”,“language_preference”等。
所以,我有两个问题:
答案 0 :(得分:12)
在同一个应用程序上创建多个PouchDB数据库是不是设计不好?
总之:不。
答案很长:CouchDB / PouchDB中的数据库基本上是免费的。一些应用程序设计需要多个数据库。
考虑一个理论离线优先/移动应用程序,它跟踪代理商的销售情况。它可能有一个用于库存管理目的的数据库,它与中央CouchDB服务器同步。
它可能还有一个每个代理数据库,包含给定代理的客户和销售信息。
PouchDB应用程序将需要两个数据库。由于CouchDB的设计,没有(简单,明智)的方法将这些数据集保存在同一个数据库中,并使代理的记录彼此分离。
CouchDB / PouchDB中的数据库更像是表,而不是RDBMS中的数据库。
在PouchDB中创建其他数据库(不适用于CouchDB)的唯一真正限制因素是,除了使用{{3之外,没有简单的方法列出现有数据库}}。这不是一个真正的限制 - 它只是意味着您需要记住您创建的数据库(您可能不应该以编程方式创建随机命名的数据库......但这可能是反正一个糟糕的设计。;-))