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