什么是Firebase Cloud Firestore中的反规范化?
在Firebase Cloud Firestore中,反规范化是一种用于优化NoSQL数据库性能的技术。具体而言,反规范化是通过在数据库的其他不同位置添加冗余数据来实现的。这意味着我们将已经存在于一个位置的相同数据复制到另一个位置,以适应可能无法以其他方式实现的查询。因此,反规范化有助于弥补关系型数据库固有的低效性。
反规范化确实有帮助,并且在Firebase中是一种常见的实践,因为数据复制是实现更快速读取的关键。我们只有在确实需要时才会使用反规范化。
数据库的扁平化和反规范化是相同的概念。通过将一个集合移动到一个独立的顶级集合,我们可以使数据库扁平化。通过这种方式,我们可以通过查询具有所需问题id的“tags”集合来获取与特定问题对应的所有标签。
此外,我们还可以同时进行数据库的扁平化和反规范化。这意味着我们在“tags”集合中创建与“users -> uid -> tags -> tagId”相同的标签对象。通过这种方式,我们将现有数据进行分组。
在NoSQL数据库中,我们无法像关系型数据库那样使用“JOIN”子句。因此,我们需要采用不同的方法来实现相同的行为。
要查询具有特定标签的所有问题,您不能直接执行这样的查询。在Firebase中,我们通常根据要执行的查询来设计数据库结构。如果您有特定的用例,请在StackOverflow上发布一个新问题,使用自己的MCVE,这样我和其他Firebase开发者就可以帮助您。