Parse.com具有属性的多对多

时间:2014-08-06 13:42:10

标签: many-to-many parse-platform pivot-table

我在“成分”和“食谱”之间有多对多的关系。我知道我可以使用

添加和删除关系中的对象
var Recipe = Parse.Object.extend("Recipe");
var Ingredient = Parse.Object.extend("Ingredient");

var recipe = new Recipe();
var ingredient = new Ingredient();

ingredient.id = "abcDef1234"; //random

var recipe_ingredients = recipe.relation("recipe_ingredients");
recipe_ingredients.add(ingredient);

但这只会增加成分。我如何存储像“数量”这样的字段以及添加的每种成分? (就像数据透视表上的额外属性一样?)

谢谢!

1 个答案:

答案 0 :(得分:5)

你不能。这是Parse的很多限制之一。您必须放弃内置关系模型,创建自己的连接表。也就是说,创建一个具有两个指针的新对象类型:第一个,源对象;第二,目标。这形成了这种关系。然后,您可以在此表上添加字段以充当关系的属性。如果需要,可以保留指向最初保持关系的对象的指针,以连接表条目为目标。

当然,一旦你意识到这会使你使用的请求数量增加一倍(每个数据库命中都是"请求"显然),那么你就会开始意识到Parse数据库模型耦合了他们的充电模型可以扩展,也可以用火柴棍建造摩天大楼。