你使用mongodb时需要规范化你的数据库吗?

时间:2014-07-19 10:06:03

标签: database mongodb database-normalization

我正在制作一个Web应用程序并使用mongodb作为我的数据库。但我是mongodb的新手,我只想知道我是否还需要像其他人在使用RDBMS时那样规范化我的数据库。在制作表格或数据库之前,它是规范化的。

1 个答案:

答案 0 :(得分:8)

像使用关系数据库那样规范化数据在MongoDB中通常不是一个好主意。

关系数据库中的规范化只有在表之间的JOIN相对便宜的前提下才可行。 $lookup聚合运算符提供了一些有限的JOIN功能,但它不适用于分片集合。因此,通常需要通过多个后续数据库查询来模拟连接,这非常缓慢(有关详细信息,请参阅问题MongoDB and JOINs)。

出于这个原因,您应该通过查询单个集合来满足最常见查询的方式设计数据库,即使这意味着您的数据库中会有一些冗余。模型1的好工具:n关系通常是子对象的数组。但是,尽量避免随着时间的推移无限增长的对象,因为在这种情况下,它们会在文件中移动很多,这会影响写入性能。