3

我试图找出正确的方法来考虑基于文档的数据存储系统的这个问题。我有一个两层类别系统的简单案例,其中有行业和行业组(想想管道和家庭服务)。

我的第一个想法是该文件将是 Industry Group 并且其中将包含 Industries,但问题是大多数相关数据将针对某个行业。我不确定在文档中包含与子项目相关的数据是否是“犹太教”。例如,一篇文章可能被分配到一个行业,而不是一个组 - 那么该引用看起来如何(假设链接来自非嵌套文档)?

无论如何,对正确思考这个问题的一些一般性见解会很棒。

4

1 回答 1

4

设计任何非关系型数据库的最佳方式是基于您需要针对数据运行的查询,而不是数据本身。

您可以以任何您想要的方式设计非关系数据库,因为没有关系数据库那样的规范化规则


回复您的评论:

您需要枚举查询数据的所有方式。然后决定在每种情况下哪种文档结构使查询最方便。

由此,可能会出现一些模式。然后根据您的判断来决定选择满足最大查询横截面的文档结构。

还要记住,在 MongoDB 中,冗余存储数据就可以了。推荐,事实上,因为单个文档结构不太可能适合您的所有查询。您可能会发现一个文档结构对于大多数查询来说都非常好,但会使最后一个查询变得不可能。那时您应该创建一个辅助的、冗余的文档集合来为最后一个查询提供服务,因为所有其他查询都得到了处理。

没有构建非关系数据库的规则。这使得它们比关系数据库更难。抱歉,NoSQL 是TANSTAAFL的一个例子!

于 2010-10-11T06:08:53.120 回答