上下文:
我正在创建Angular的Wiki页面。Wiki页面可能不会大于5000篇文章。我想获得最有效的(pageload(方式,但我认为我对此太陌生了,无法监督一种选择的后果。当然,我也想遵循惯例。
问题:
我想在Firestore中收集一系列文章,我想对此进行分类。一篇文章应属于一个类别。一个类别可以属于一个类别(作为子类别(。
现在,首选哪种数据模型?为什么?
-
每个文章都有(参考数据类型(参考类别文档?
-
类别文档对文章有一系列引用?
Firestore-root
|
--- categories (collection)
|
--- categoryId (document)
|
--- name: "Science" //Simple property
|
--- articles ['articleId1', 'articleId2', etc.. (long array)]
- 完全不同的东西?
- 每个具有(参考数据类型(的属性的每篇文章参考类别文档?
只有在文章属于单个类别的情况下,此结构才会为您提供帮助。
Firestore-root
|
--- articles (collection)
|
--- articleId (document)
|
--- catoegory: "Science" //Simple property
无需使用对类别文档的引用。除此之外,要过滤您的文章,您可以简单地使用where equal
调用。
- 类别文档对文章有一系列参考?
如果文章可以属于一个或多个类别,则此结构将为您提供帮助。
Firestore-root
|
--- articles (collection)
|
--- articleId (document)
|
--- catoegories: ["Science", "Economy"] //Property of type array
现在要过滤您的文章,您可以简单地使用array-contains
调用。
- 完全不同的东西?
在构建云的Firestore数据库时,这两种解决方案均被广泛使用,但是您应该选择哪种解决方案更适合于应用程序的用例。