0

データストアの低レベルAPIを使用して、2つのエンティティ間で多対多の関係をどのように作成したかを知りたいだけです。探していましたが、この種の関係を行う方法を説明するドキュメントが見つかりませんでした。誰かが助けてくれることを願っています。

しかし、エンティティ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);
4

1 に答える 1

0

AppEngineは、多対多の関係のための機能を提供していません。

2つのフィールドを使用して独自のエンティティを作成することにより、これをエミュレートできます。

class AtoBRelations {
  Key entityA 
  Key entityB
}

他のデータベースであっても、多対多の関係のために追加のテーブルを用意するのが一般的なパターンです

ところで、ほとんどの場合、それは最適なソリューションではありません。最適なソリューションは、この多対多の関係をどのように使用する必要があるかによって異なり、さまざまなソリューションがいくつかあります。

たとえば、2番目の解決策があります。次のような関連エンティティのリストを保存できます。

class EntityA {
   List<Key> entitiesB
}
于 2011-07-21T19:12:25.267 に答える