为什么给定类型的ID在Google Cloud Datastore中不是唯一的?

时间:2016-03-23 08:20:19

标签: google-app-engine google-cloud-datastore

在我的GAE数据存储区中,我有以下几种:商店,订单和交易。一个商店有几个订单,一个订单有几个交易。 商店是订购的父母,订单是交易的父母。 ID由数据存储区自动生成。

在数据库中,我发现两个不同的订单记录具有相同的ID,但具有不同的父级。因此,似乎这些ID本身并不是独一无二的 - 只能与其父母一起使用?这是对的吗?

如果是这样,我总是需要在查询中查询id AND parent?

谢谢, -Louise

1 个答案:

答案 0 :(得分:4)

是的,这是正确的。数据存储区永远不会为具有相同父级的两个实体或两个根实体(没有父级的实体)分配相同的数字ID。

  

数据存储区中的每个实体都有一个唯一标识它的密钥。该   key由以下组件组成:

     
      
  1. 实体的名称空间,允许多租户
  2.   
  3. 实体的类型,为数据存储区查询的目的对其进行分类
  4.   
  5. 单个实体的标识符,可以是键名字符串或整数数字ID
  6.   
  7. 在Datastore层次结构中定位实体的可选祖先路径
  8.   

您可以找到有关祖先路径here的详细信息。