2011-06-13 57 views
11

我刚刚开始玩couchdb,到目前为止我非常喜欢它,但我想知道什么时候应该创建一个新的数据库。CouchDB为每种文档类型创建数据库?

这里就是我的意思是:

如果我是在服务器上创建一个博客与多个博客,这是一个RDBMS,我想创建一个数据库名为fox_blog和创造职位表和关系,评论等。

现在在CouchDB中,我只需创建3种文档类型:文章,评论和用户帐户。

但是这是我的问题:我会创建一个名为fox_blog的数据库并为每个文档添加一个'type'字段(例如,在帖子文档中会有一个'type'字段,其值为'post “)?或者我会为每个文档创建一个单独的数据库,并在fox_名称的前面(例如,db名称是fox_posts)。或者这些都不正确?

让我知道如果任何这是不清楚的,这是一个有点难以解释呵

回答

5

通常,我会尝试在每个自己的数据库中保留单独的应用程序。在这种情况下,如果所有不同的博客都在单个界面中访问,请将其保留在1个数据库中,使用typeblog等字段标识每个文档。

如果您正在运行多个博客,每个博客都可以在他们自己的域或地址访问,您可能需要考虑将每个博客分为自己的数据库。基本上,CouchDB允许你在这里有很大的灵活性,所以要充分利用它和实验。

+0

阻止我做这件事的唯一方法是每次有更新时沙发都会更新它的视图。因此,以评论为例。它们的更新频率比博客条目要多得多,所以在某些情况下将帖子的评论与帖子分开会更好(假设我没有一种观点将某些奇怪的原因与帖子和评论相结合)? – Obto 2011-06-13 16:54:24

+1

好的讨论。福克斯,你说得对,有更多的更新,但是CouchDB会处理(映射/减少)每个文档一次,基本上是在它被存储之后。无论这些数据是分布在多个数据库中还是只存储在一个数据库中,都将大致相同。我同意Dominic的经验法则:开始时将它保存在一个数据库中。 – JasonSmith 2011-06-14 01:43:53

+1

好吧,我现在把我的所有领域都保存在一个数据库中,它看起来不错。但从我现在的理解来看,如果我发现某个文档类型没有被用在包含其他文档的视图中,那么将它移动到它自己的db可能是一个好主意。这个想法是否正确? – Obto 2011-06-14 18:46:26

8

您应该创建每个文档中的类型字段一个数据库。

您可能希望编写一个视图,将文档及其所有注释一起返回。

5

更重要的是跨多个数据库的查询不直接支持 - 尽管有解决方法。

对于您的情况,在单独的数据库中的帖子,评论和活动根本不起作用。

你可以使用任何鸭打字或使用类型字段“后/评论”等

CouchDB中有一个内置的是你的应用程序中访问过用户数据库。

相关问题