2016-03-23 4 views
2

私のGAEデータストアには、次の種類があります:ストア、注文、トランザクション。 1つの店舗には複数の注文があり、1つの注文には複数の取引があります。 ストアは注文の親ですが、注文は取引の親です。 IDはデータストアによって自動的に生成されます。Google Cloud Datastoreで特定の種類のIDが一意でないのはなぜですか?

DBでは、私は同じIDを持つが異なる親を持つ2つの異なる注文記録を発見しました。だから、IDは自分自身ではなく、親との組み合わせでしかないようです。これは正しいです?

もしそうなら、私はいつもクエリでidとparentをクエリする必要がありますか?

おかげで、 -Louise

+0

IDは関係ありません。常にキーで照会する必要があります。キーには、祖先パスがある場合はそれが含まれます。 –

答えて

4

はい、それは正しいです。データストアは、同じ親を持つ2つのエンティティ、または2つのルートエンティティ(親を持たないエンティティ)に同じ数値IDを割り当てることはありません。

Datastoreの各エンティティには、それを一意に識別するキーがあります。 キーは、次の成分からなる:

  1. マルチテナント
  2. のデータストアの目的のためにそれを分類するエンティティの種類を、可能にするエンティティの名前空間が
  3. の識別子を照会しますキー名文字列又は整数の数値ID
  4. データストア階層内のエンティティの位置を特定する任意祖先パスのいずれかとすることができる個々のエンティティ、

祖先のパスhereの詳細を見つけることができます。

関連する問題