MongoDB爱好者
垂直技术交流平台

使用模式构建:多态模式(The Polymorphic Pattern)

当涉及MongoDB时,一个经常被问到的问题是“我如何在MongoDB中为我的应用程序构造模式(schema)?”老实说,这要看情况而定。你的应用程序读操作比写操作多吗?从数据库中读取时需要将哪些数据放在一起?有哪些性能因素需要考虑?文档有多大?它们今后会变成多大?你预计数据会如何增长和扩展?

所有这些以及更多的问题,都涉及到如何在MongoDB中设计数据库模式(schema)。有人说MongoDB是无模式的,而实际上模式设计在MongoDB中非常重要。有一个严峻的现实,我们发现的大多数性能问题都可以追溯到糟糕的模式设计。

在本系列文章“使用模式构建”中,我们将了解在MongoDB中行之有效的十二种常见的模式设计方式(Schema Design Patterns)。我们希望本系列文章能够建立一种在设计模式时可以使用的通用方法和词汇表。利用这些模式(patterns)可以在模式(schema)规划中使用“构建基块(building blocks)”,从而使这个过程更多地成为一种方法论而不是艺术。

MongoDB使用文档数据模型。此模型具有内在的灵活性,允许数据模型支持你的应用程序需求。灵活性也可能导致模式比它们应有样子的更复杂。在考虑模式设计时,我们应该考虑性能、可伸缩性和简单性。

让我们开始