Database design 是否按文档类型创建数据库?

Database design 是否按文档类型创建数据库?,database-design,nosql,couchdb,Database Design,Nosql,Couchdb,我刚刚开始玩couchdb,到目前为止我非常喜欢它,但是我想知道你什么时候应该创建一个新的数据库 我的意思是: 如果我要在一个服务器上创建一个博客,其中包含多个博客,这是一个RDBMS,我会创建一个名为fox_blog的数据库,并为帖子、评论等创建表和关系 现在在CouchDB中,我只需要创建3种文档类型:帖子、评论和用户帐户 但这是我的问题:我会制作一个名为fox_blog的数据库,并在每个文档中添加一个“type”字段(例如,在posts文档中会有一个值为“post”的“type”字段)?或

我刚刚开始玩couchdb,到目前为止我非常喜欢它,但是我想知道你什么时候应该创建一个新的数据库

我的意思是:

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

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

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


如果有任何不清楚的地方,请告诉我,解释起来有点困难。你应该在每个文档中创建一个带有类型字段的数据库


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

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


如果你运行多个博客,每个博客都在自己的域名或地址访问,你可能想考虑将每个博客分割成自己的数据库。基本上,CouchDB在这里为您提供了很大的灵活性,因此请充分利用这一点并进行实验。

更重要的是,不直接支持跨多个数据库进行查询,尽管有一些方法可以解决这一问题

在您的情况下,在单独的DBs中发布帖子、评论和账户根本不起作用

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


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

唯一阻止我这样做的是Coach如何在每次更新时更新其视图。以评论为例。它们的更新频率要比博客文章的更新频率高很多,所以在某些情况下,将评论与帖子分开不是更好吗(假设我没有一个观点,因为某些奇怪的原因将帖子和评论结合起来)?讨论得很好。Fox,你说得对,有更多的更新,但是CouchDB将处理(映射/减少)每个文档一次,基本上是在它被存储之后。无论这些数据是分散到多个数据库中,还是存储在一个数据库中,都大致相同。我同意多米尼克的经验法则:在开始的时候把它放在一个数据库里。好吧,我现在把我所有的字段都放在一个数据库里,看起来很不错。但是从我现在的理解来看,如果我发现某个文档类型没有在包含其他文档的视图中使用,那么最好将其移动到自己的数据库中。这种心态正确吗?