【发布时间】:2016-03-12 21:53:08
【问题描述】:
我使用 firebase 作为我的数据库后端,并且有一个多对多的关系。 由于我的关系有点抽象,我将在这里举一个简化的例子。假设我们有学生和讲座。学生可以参加讲座,讲座有参加学生的名单。在整个应用程序中,两个查询都需要,因此将列表保存在其中任何一个中都没有真正的优势。这个问题在像这样的 No-SQL 场景中似乎并不少见,我什至读过关于存储每个学生的所有讲座列表和每个讲座的学生列表,这是一个有效的解决方案。 假设我的 JSON 数据如下所示:
"students": {
"s1" : {
"name": "A",
"lectures": ["l1", "l2"]
},
"s2" : {
"name": "B",
"lectures": ["l2", "l3"]
}
}
和
"lectures": {
"l1" : {
"title": "lecture1",
"students": ["s1"]
},
"l2" : {
"title": "lecture2",
"students": ["s1", "s2"]
},
"l3" : {
"title": "lecture3",
"students": ["s2"]
}
}
其中 s1、s2、l1、l2、l3 是神秘的 Firebase ID。 使用这样的设置,很容易编写一个查询,以便将学生 "s1" 的所有讲座作为数组 ["l1", "l2"] 获取。
但是,我不知道如何使用这组 ID 获取相应的讲座元素,因为我只能查询一个 ID。 我还想避免使用 Java-Code 获取所有数据并在之后对其进行过滤。
【问题讨论】:
标签: android firebase firebase-realtime-database nosql