rdbms表到couchdb数据库表。

问题描述 投票:0回答:1

我们正在创建一个新的Web应用程序,我们打算使用CouchDB。旧的Web应用程序正在重写,我们正在从RDBMS迁移到CouchDB。 我有一个RDBMS模式,有10多个表,我想在CouchDB中重新创建同样的模式。在CouchDB中,哪种方法更好?

选项

  1. 在CouchDB中为我的RDBMS模式中的每个表创建一个新的数据库。

  2. 在CouchDB中只建立一个数据库,并将所有的RDBMS表存储到这个CouchDB中,有一个显式的列叫doc_typetable_type,来表示它在RDBMS表中代表的是哪种tablerow类型。

这些方法的优缺点是什么?推荐的方法是什么?

couchdb rdbms
1个回答
0
投票

这一切都取决于。

一般来说,要警惕试图将RDBMS模式天真地 "翻译 "到CouchDB上--它很少会在一个快乐的地方结束。关系型模式--如果设计得好--将是规范化的,并依赖于多表连接来检索数据。在CouchDB中,你的数据模型(很可能)不会被规范化得那么多,取而代之的是代表来自表的行的文档单元,或者是关系型DB中join返回的行。

在CouchDB中,没有联接,也没有文档单元上面的原子事务。在为CouchDB设计数据模型时,要考虑如何访问和改变数据。你需要原子访问的东西属于同一个文档。

至于许多数据库与带有 "类型 "字段的文档的单一数据库,单一数据库选项允许你在整个数据集上轻松地执行map-reduce查询。如果你使用多个数据库,这是不可能的,因为map-reduce视图是严格按数据库进行的。数据库的数量应该由访问模式决定--如果你的数据只被你的应用程序的一个子集查询访问过,而且从来不需要和其他数据一起切分,那就可以放在一个单独的数据库中。

我还建议你查看一下 CouchDB 和云坦。

© www.soinside.com 2019 - 2024. All rights reserved.