2016-03-23 7 views
2

GAE veri mağazamda aşağıdaki türler var: mağaza, sipariş ve işlem. Bir mağazanın birkaç siparişi vardır ve bir siparişin birkaç işlemi vardır. mağazası, sipariş için ebeveyntir, sipariş işlem ebeveynidir. Kimlikler, veri deposu tarafından otomatik olarak oluşturulur.Belirli bir tür için kimlikler neden Google Cloud Datastore'da benzersiz değil?

DB'de aynı kimlikle, ancak farklı ebeveynlerle iki farklı sipariş kaydı keşfettim. Öyleyse, kimlikler kendilerinde benzersiz değiller - sadece ebeveynleriyle birlikte mi? Bu doğru mu?

Eğer öyleyse, her zaman sorgularda id AND parent sorgulamam gerekiyor?

sayesinde -Louise

+0

Kimlikler alakasız; her zaman anahtar ile sorgulama yapmalısınız. Bir anahtar varsa bir ata yolunu içerir. –

cevap

4

Evet, doğrudur. Datastore asla aynı sayısal kimliği, aynı üst öğeye sahip iki varlığa veya iki ana öğeye (ebeveyn olmayanlar) atamaz.

Datastore'daki her varlık, benzersiz olarak tanımlayan bir anahtara sahiptir. anahtar aşağıdaki bileşenlerden oluşur:

  1. çoklu müşteri sağlayan kuruluşun ad,
  2. veri deposuna amacıyla bunu kategorize varlığın tür için
  3. bir tanımlayıcı sorgular

    bir anahtar adı dize veya bir tam sayı sayısal İD
  4. veri deposu hiyerarşi içindeki nesnenin yerinin isteğe bağlı bir ata yolu olabilir tek tek varlık

Ataları here hakkında daha fazla ayrıntı bulabilirsiniz.