【发布时间】:2021-10-15 02:48:11
【问题描述】:
我正在设计一个使用 java android 和 FireStore 作为后端的社交应用程序。 一开始,Firestore 建模可能是一个很大的变化,正如我所读到的,我试图让文档保持小而不是制作太多的子集合,让我们假设以下场景:
一个用户可以创建几个配置文件
个人资料有兴趣
一个用户可以关注或取消关注许多个人资料,因此一个个人资料可以被很多用户关注
用户(集合)
uid: uidUserOne
姓名:杰夫
个人资料(收藏)
idProfile:idProfileOne
名称:nameProfileOne
兴趣:{瑜伽:真,跑步:真,攀岩:真}
创建者:uidUserOne
从这里开始,我不确定如何为关注/取消关注功能建模,我想到了三个选项:
选项 A
创建一个集合,其中每个文档映射单个用户遵循一个配置文件关系关注者(集合)
uid: uidUserOne
idProfile: idProfileOne
选项 B
一个文档映射每个配置文件的关注者,我将关注该配置文件的用户 UID 保存在一个数组中。
关注者(收藏)
idProfile:idProfileOne
追随者:{ uidUserOne: true, uidUserTwo: true, ...}
选项 C
一个文档映射每个用户的关注,我将用户关注的配置文件ID保存在一个数组中
关注者(收藏)
uid: uidUserOne
如下: { idProfileOne: true, idProfileTwo: true, ...}
我想知道哪些选项是最好的,A B r C 也可以是更好的选项...可能
我还有一个疑问,我该如何进行以下查询:
假设我是用户 One,并且我已经关注了两个对瑜伽感兴趣的个人资料,所以我想列出我尚未关注的对瑜伽感兴趣的个人资料,不知道如何完成。
【问题讨论】:
标签: java android firebase google-cloud-firestore data-modeling