首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Firebase数据库中的友谊

问Firebase数据库中的友谊
EN

Stack Overflow用户
提问于 2016-11-26 06:06:35
回答 1查看 936关注 0票数 0

我正在为狗主人制作一个应用程序。我想在狗之间结交朋友。用户可以有n只狗,狗可以有n个朋友。我不确定我应该如何以最有效的方式实现Firebase数据库。我在想我应该有一个节点友情,在那里我可以像这样存储信息友情:

代码语言:javascript
复制
friendships:
     id_dog
        id_friend_dog1: true
        id_friend_dog2: true

我要找现在这条狗的朋友。此外,我需要能够得到其他狗,还没有朋友。您将如何实现此用例?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2016-11-26 07:25:42

如何在Firebase中对数据进行建模通常取决于您希望如何在应用程序中使用这些数据。

在你的场景中,有一个额外有趣的问题:友谊本质上是双向的吗?换句话说:如果dog1是狗2的朋友,这是否意味着dog2一定是dog1的朋友?如果是这样的话,您需要按照我在Best way to manage Chat channels in Firebase中描述的方式对其建模

代码语言:javascript
复制
friendships:
    id_dog1-id_dog2: true
    id_dog1-id_dog3: true

此外,你会想要做你已经说过的事情:为每只狗保存一个朋友列表。

您将看到,这意味着您保存了重复的数据:每只狗的朋友列表和狗之间友谊的“主列表”。

这种数据复制在NoSQL数据库中很常见,Firebase也不例外。

更新(备注)

NoSQL解决方案中的数据建模始终取决于您希望如何使用数据。如果你想得到一个特定狗的朋友列表,你应该为每只狗存储一个朋友列表。

代码语言:javascript
复制
dogFriends
  dog1
    dog2: true
    dog3: true
  dog1
    dog1: true
  dog3
    dog1: true

现在,您可以通过加载/dogFriends/{dogId}轻松找到特定狗的朋友。然后循环这些结果并加载每个朋友的详细信息。

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

https://stackoverflow.com/questions/40812778

复制
相关文章

相似问题

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