我正在使用Firebase并且具有关系结构,其具有'类别'和'食谱'在多对多关系中如下:
{
"categories": {
"<category_id_1>": {
"name": "Breakfast",
"imageUrl": "http://www.image.com/url",
"recipes": {
"<recipe_id_1>": true,
"<recipe_id_2>": true
}
}
},
"recipes": {
"<recipe_id_1>": {
"title": "Sweet Potato & White Bean Chilli",
"cookingTime": 50,
"portionSize": "4-6",
"difficulty": "Easy",
"categories": {
"<category_id_1>": true,
"<category_id_2>": true
}
}
}
}
我可以通过转到/categories/<category_id_1>/recipes
并循环获取每个食谱的参考来获取类别中的食谱:例如/recipes/<recipe_id_1>
。
但是,我正在努力解决的问题是如何查询/过滤早餐类别中有困难的食谱=&#34; Easy&#34;。
关于对关系数据进行查询,您有什么建议?
答案 0 :(得分:1)
与NoSQL一样,您需要为所需的用例建模数据。因此,如果您想获得简单的早餐食谱清单,您应该存储一份简单的早餐食谱清单:
{
"categories_complexities": {
"Breakfast_easy": {
"<recipe_id_1>": true,
"<recipe_id_7>": true
}
},
}
请注意,我已经取消了您的数据:不要将类别元数据与该类别的食谱列表混合。