我只想知道如何使用数据存储区中的低级api在两个实体之间建立多对多的关系,我一直在寻找,但我找不到解释如何做这种关系的文档。我希望有人能帮帮忙。
但如果我有多对多的实体A和实体B,我怎样才能存储在数据存储区中。我的意思是,这是一个很好的解决方案,可以在数据存储中存储多对多的实际情况,或者什么是一个好的解决方案?这段代码还可以,还是错了?
Entity entityA = new Entity("TypeA");
entityA.setProperty("name", "nameUserA");
Entity entityB = new Entity("TypeA");
entityA.setProperty("name", "nameUserB");
ds.put(entityA);
ds.put(entityB);
Entity entityChild = new Entity("entityChild",entityAKey);
entityChild.setProperty("name","child");
ds.put(entityChild);
Entity entityChild = new Entity("entityChild",entityBKey);
entityChild.setProperty("name","child");
ds.put(entityChild);
答案 0 :(得分:0)
AppEngine不提供多对多关系的任何功能。
您可以通过创建自己的实体来模拟它,包含两个字段:
class AtoBRelations {
Key entityA
Key entityB
}
我常见的模式是为多对多关系设置一个额外的表,即使对于其他数据库也是如此
BTW,对于大多数情况来说,它不是最佳解决方案。最优解决方案取决于必须如何使用这种多对多关系,并且几乎没有不同的解决方案例如,有第二种解决方案:您可以存储相关实体的列表,例如:
class EntityA {
List<Key> entitiesB
}