首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何对Fi还原数据建模?

如何对Fi还原数据建模?
EN

Stack Overflow用户
提问于 2020-06-29 16:53:13
回答 2查看 115关注 0票数 1

我刚开始修复,并试图为我的应用程序开发一个数据模型。

背景:我有一个约会类型的应用程序,有3种主要的方式,用户可以相互交流。喜欢、拒绝和评论用户配置文件。用户喜欢和评论都是私人的。换句话说,只有我能看到谁喜欢我的个人资料或评论我的个人资料(这不像社交媒体,每个人都可以看到谁喜欢一个帖子)。我需要能够查询用户,知道谁拒绝了他们的个人资料,所以我不会再向那些用户显示。我还需要知道谁喜欢/评论一个用户配置文件,这样我就可以查询哪些用户喜欢/评论对方(他们已经匹配了)

  • 用户可以像许多配置文件一样,反之亦然,
  • 用户可以拒绝/跳过许多配置文件,反之亦然,
  • 用户可以对许多配置文件进行评论,反之亦然,

我相信这意味着我需要一个likedUsers,dismissedUsers和commentedUsers的根集合

问题:对于被解雇的用户,我想将每个用户存储为dismissedUsers根集合的文档,并将他们跳过的每个用户存储为字段/值对,如下所示.

拒绝用户/用户/用户1、user2、user3等

上面的内容将创建我想要的许多关系,dismissedUsers可以有很多用户,用户可以有很多dismissedUsers。但是,我不相信它是可伸缩的,因为用户文档会变得太大。

问题:,我如何创建这么多的关系,dismissedUsers可以有很多用户,用户可以有很多dismissedUsers,这样就可以扩展和降低成本?然后质疑它?

EN

回答 2

Stack Overflow用户

发布于 2020-06-29 17:17:04

首先,我要问自己为什么要使用Firestore,它是一个文档数据库,而不是选择关系数据库。我个人喜欢Firestore,并极力推荐它。我们选择文档数据库是因为它在许多方面都更快、更容易使用。在其他方面,这是一个缺点,因为您的查询能力非常有限。在我看来,你的大脑正在致力于一个关系数据库的实现。

这里有一个解决方案

首先,我将尽量避免将用户数据存储在多个位置,以避免异常(当然是正确的)。我将有一个用户集合,在其中我使用唯一的id存储所有用户数据(最好使用Fi还原分配的id,这样我就不会有冲突了)。在每个用户文档中,我会链接到一个子集合,用于解说、喜欢、被其他人拒绝、被其他人喜欢等等。我会保存一个记录,所有的用户(只有用户身份),他们已经解散,喜欢,被解雇,被喜欢等。通过这种方式,我可以查找该用户喜欢或不喜欢的所有数据,并相应地向该用户显示我想要的任何内容。

缺点

你将不得不写两次喜欢,解散等。使用批次写入同时更新喜欢的和相似的数据。

票数 1
EN

Stack Overflow用户

发布于 2020-06-29 17:02:24

您不需要一组喜欢、拒绝或评论其他用户配置文件的用户。您可以拥有一个存储所有用户的用户集合。在每个用户文档中,您可以拥有三个用户ids数组,这些用户ids喜欢、评论和/或拒绝用户配置文件。只需确保用户集合中文档的文档ID与相应用户的用户id匹配即可。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62643015

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档