【发布时间】:2017-10-26 07:58:56
【问题描述】:
我正在开发一个 iOS 应用程序。为此,我有一个包含成分和食谱的 firebase 数据库。不难想象;一个食谱有与之关联的子成分,并且一个成分可以包含在多个食谱中。下面是我的 JSON 结构示例:
{
"ingredients" : {
"chicken" : {
"meal1" : true,
"meal2" : true
},
"beef" : {
"meal2" : true
},
"lamb" : {
"meal1" : true,
"meal3" : true
}
},
"meals" : {
"meal1" : {
"ingredients" : {
"chicken" : true,
"lamb" : true
}
},
"meal2" : {
"ingredients" : {
"chicken" : true,
"beef" : true
},
"meal3" : {
"ingredients" : {
"lamb" : true
}
}
}
问题:查询包含用户选择的一组成分的食谱列表并将它们添加到食谱对象数组中的最佳做法是没有 引入重复的食谱?我正在寻找包含至少 1 种成分匹配的所有食谱。
示例:用户正在从我的示例数据库中搜索包括“chicken”和“beef”的食谱,我希望返回 recipe1 和 recipe2。 Recipe2 包括鸡肉和牛肉,所以我不希望它被两次拉入搜索结果。
我的第一个想法是查询 first chicken 下的所有餐点,然后查询牛肉下的所有餐点,然后执行某种功能来删除重复项。在我看来,这不是一个好的解决方案,因为您可能会生成多个重复的餐点,理论上您必须删除这些餐点。有没有更好的办法?
【问题讨论】:
标签: swift firebase firebase-realtime-database nosql