在我的GAE数据存储区中,我有以下几种:商店,订单和交易。一个商店有几个订单,一个订单有几个交易。 商店是订购的父母,订单是交易的父母。 ID由数据存储区自动生成。
在数据库中,我发现两个不同的订单记录具有相同的ID,但具有不同的父级。因此,似乎这些ID本身并不是独一无二的 - 只能与其父母一起使用?这是对的吗?
如果是这样,我总是需要在查询中查询id AND parent?
谢谢, -Louise
答案 0 :(得分:4)
是的,这是正确的。数据存储区永远不会为具有相同父级的两个实体或两个根实体(没有父级的实体)分配相同的数字ID。
数据存储区中的每个实体都有一个唯一标识它的密钥。该 key由以下组件组成:
- 实体的名称空间,允许多租户
- 实体的类型,为数据存储区查询的目的对其进行分类
- 单个实体的标识符,可以是键名字符串或整数数字ID
- 在Datastore层次结构中定位实体的可选祖先路径
醇>
您可以找到有关祖先路径here的详细信息。