数据集的特定非规范化技术

时间:2018-03-26 15:20:18

标签: json firebase firebase-realtime-database nosql denormalization

我正在开展一个学校项目,为了额外的功劳,我们可以在我们的Android应用程序中添加一个数据库。我正在使用Firebase,因为我已经听过很多关于它的信息,所以我想学习如何使用它!

我一直在阅读如何组织数据,我对我的具体用例有一些疑问,我希望能找到一些建议。

对于我们的项目,我们需要有一个位置列表,每个位置都有与之关联的属性(地址,名称,他们做什么等)以及这些位置的用户列表。我目前的位置是我的“类别”之一。我不知道这个问题的正确用语,我的意思是在我的json文件中它看起来像这样:

{ "Locations": { "location_1": {...}, "location_2": {...} ...} }

同样,我将用户作为我的json文件中的另一个类别。

我想知道在一个位置跟踪用户的最佳方法是什么?我想把另一个房产保留在一个被称为“占用者”或其他东西的位置,但我不知道这是否过于深入嵌套数据。

1 个答案:

答案 0 :(得分:0)

根据上面的评论,当您解释说您必须同时获得用户所在的位置和位置中的所有用户时,您必须创建两个数据结构:

一个用于存储当前用户位置的用户:

- Users
  - User_A
    - Location: Location_1
  - User_B
    - Location: Location_2

和一个位置,当您列出时,为每个位置列出位于此位置的用户。

- Location_1
  - "Users": {
    "alovelace": true,
    "ghopper": true,
    "eclarke": true
  }

使用NoSQL数据库,您应该毫不犹豫地以这样一种方式复制数据,使您的查询变得简单快捷。

我建议您查看最近的Firebase视频,其中非常好地解释了这种方法(该视频是关于Firestore的,但请查看前9分钟):https://www.youtube.com/watch?v=v_hR4K4auoQ