我正在尝试使用Firebase数据库,并查看了建模多对多或一对多关系的推荐方法。
假设我有一个用户与帖子之间的关系:
用户拥有许多帖子。
这是我的模型设计思路:
class User{
List<String> postIds;
...
}
class Post{
String userId;
....
}
这是根据Firebase文档这里的内容。
我喜欢这个设计,而不是像mongodb样式一样在用户集合下嵌入用户创建的帖子,这个设计是平面的;因此,如果我们以后想要仅提取系统中的用户,我们就不必将帖子也提取到用户下面。
但是,对于这种设计,我的疑虑是即使在帖子中嵌入了ids,以后也可能会出现问题;想象一下有100个用户,每个用户有1000篇文章。如果我想要显示用户列表,我必须拉取100个用户,这意味着我必须拉取100,000个帖子id。
Firebase上是否有任何懒加载的概念?也就是说,当我获取用户实体时,postIds不应该自动加载;它应该按需加载。