【发布时间】:2011-07-21 18:41:34
【问题描述】:
我只是想知道如何使用数据存储区中的低级 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);
【问题讨论】:
-
创建 entityChild 的内容是什么?您希望在哪些实体之间建立关系?
-
我只是想代表一个多对多关系,如果我有一个子实体并使用每个父实体的键创建两次是一个好的解决方案吗?还是只创建一次并创建一个包含这些实体的键作为属性的实体更好?
-
不是1-1(最大1-n,如果一个实体的孩子很少)关系吗? entityA - 第一个 entityChild,entityB - 第二个 entityChild
-
使用低级 API 在数据存储中保持多对多关系的方式是什么?
-
如果相关实体的数量不多(几十万),那么我将使用相关项目的键列表。其实是一对多的关系,但也可以通过反向关系查询,所以大部分情况下变成多对多。
标签: java google-app-engine google-cloud-datastore entity-relationship low-level-api