CouchDB按文档类型创建数据库?

时间:2011-06-13 05:47:32

标签: database-design nosql couchdb

我刚刚开始使用couchdb,到目前为止我真的很喜欢它,但我想知道你什么时候应该创建一个新的数据库。

这就是我的意思:

如果我要在服务器上用多个博客创建一个博客,这是一个RDBMS,我会创建一个名为fox_blog的数据库,并为帖子,评论等创建表和关系。

现在在CouchDB中,我只需要制作3种文档类型:帖子,评论和用户帐户。

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

如果有任何不清楚的地方,请告诉我,有点难以解释嘿

3 个答案:

答案 0 :(得分:9)

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

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

答案 1 :(得分:6)

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

如果您正在运行多个博客,每个博客都在他们自己的域或地址访问,您可能需要考虑将每个博客分段到他们自己的数据库中。基本上,CouchDB在这里为您提供了很大的灵活性,因此可以利用它并进行实验。

答案 2 :(得分:5)

更重要的是,不直接支持跨多个DB进行查询 - 尽管有很多方法可以解决这个问题。

在您的案例中,单独的数据库中的帖子,评论和行为根本不起作用。

您可以使用duck-typing或使用类型字段“post / comment”等。

CouchDB有一个内置的用户数据库,也可以在你的应用程序中访问。

相关问题