我有 Mysql 背景,现在使用 Pouchdb。我习惯了每个应用程序有 1 个数据库和许多表的 SQL 模式。
在 pouchDB 中情况有所不同,因为数据不是存储在表中而是存储在文档中。因此,在我的应用程序中,我有一个任务数据库,使用以下命令创建:
var db = new PouchDB('tasks', {revs_limit: 1, auto_compaction: true});
这是我的应用程序的主数据库,但现在我还需要存储设置,例如“last_visit_date”、“language_preference”等。
所以,我有两个问题:
- 我应该只创建一个数据库然后存储不同的数据吗
设置子对象或者我可以创建多个数据库来存储此数据第二个选项有任何缺点吗?
- 我还没有开始与 cloudant 或 couchdb 同步,但将来我必须这样做。如果我有 2 个数据库(或更多),它会使同步过程变得更复杂、更慢或更糟吗?
在同一个应用程序上创建多个 PouchDB 数据库是否被认为是糟糕的设计?
一句话:不。
长答案:CouchDB/PouchDB 中的数据库本质上是免费的。以及一些应用设计require多个数据库。
考虑一个理论上的离线优先/移动应用程序,用于跟踪代理的销售情况。它可能有一个用于库存管理目的的数据库,该数据库与中央 CouchDB 服务器同步。
它还可能有一个每个代理商的数据库,其中包含给定代理商的客户和销售信息。
PouchDB 应用程序将需要这两个数据库。由于 CouchDB 的设计,没有(简单、合理)的方法可以将这些数据集保存在同一个数据库中,并使代理的记录彼此分离。
CouchDB/PouchDB 中的数据库更像表,而不是 RDBMS 中的数据库。
在 PouchDB 中创建其他数据库(不适用于 CouchDB)的唯一真正限制因素是,没有简单的方法来列出现有数据库,除非使用plugin https://github.com/nolanlawson/pouchdb-all-dbs。这不一定是一个真正的限制——它只是意味着您需要记住您创建了哪些数据库(您可能不应该以编程方式创建随机命名的数据库......但这可能是一个糟糕的设计。; -) )
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)