每个应用程序有多少个 CouchDB 数据库?
How many CouchDB databases per application?
在SQL 数据库中,数据是围绕表格组织的。在 CouchDB 中没有表。 CouchDB 如何组织单个应用程序的数据?简单地抛出许多文档然后使用视图对服务于相同目的的数据进行分组的单一数据库?或多个数据库(听起来不对,但在某些项目中看到过)被视为 SQL 个表?
与大多数事情一样,这取决于您的应用程序要求。使用单个数据库可以更简单,但并非总是如此。
我见过人们使用带有多个设计文档的单个数据库,每个设计文档都定义了自己与特定类型文档相关的视图。这允许多种类型的文档在单个数据库中共存。单个数据库使备份策略变得非常简单。
我见过多个数据库用于按 user/group/account 对事物进行逻辑分组。如果保持数据清楚地孤立和分离很重要,那么这可能很有吸引力。这种方法的另一个好处是您可以更轻松地在不同类型的 customers/accounts 之间实现自定义逻辑。 (当然,要权衡所有这些不同的数据库之间的关系)
这个问题没有"right answer",就像我之前说的,这取决于您的应用程序的需求。我会从单个数据库开始,但如果感觉更适合您的数据,也可以切换到多个。 CouchDB 就是这样灵活:)
在SQL 数据库中,数据是围绕表格组织的。在 CouchDB 中没有表。 CouchDB 如何组织单个应用程序的数据?简单地抛出许多文档然后使用视图对服务于相同目的的数据进行分组的单一数据库?或多个数据库(听起来不对,但在某些项目中看到过)被视为 SQL 个表?
与大多数事情一样,这取决于您的应用程序要求。使用单个数据库可以更简单,但并非总是如此。
我见过人们使用带有多个设计文档的单个数据库,每个设计文档都定义了自己与特定类型文档相关的视图。这允许多种类型的文档在单个数据库中共存。单个数据库使备份策略变得非常简单。
我见过多个数据库用于按 user/group/account 对事物进行逻辑分组。如果保持数据清楚地孤立和分离很重要,那么这可能很有吸引力。这种方法的另一个好处是您可以更轻松地在不同类型的 customers/accounts 之间实现自定义逻辑。 (当然,要权衡所有这些不同的数据库之间的关系)
这个问题没有"right answer",就像我之前说的,这取决于您的应用程序的需求。我会从单个数据库开始,但如果感觉更适合您的数据,也可以切换到多个。 CouchDB 就是这样灵活:)