【问题标题】:Why are IDs for a given kind not unique in Google Cloud Datastore?为什么给定类型的 ID 在 Google Cloud Datastore 中不是唯一的?
【发布时间】:2016-09-25 07:44:51
【问题描述】:

在我的 GAE 数据存储中,我有以下类型:存储、订单和交易。一个店铺有几个订单,一个订单有几个交易。 store 是 order 的 parent,order 是 transaction 的 parent。 ID 由数据存储区自动生成。

在数据库中,我发现了两个不同的订单记录,它们的 ID 相同,但父母不同。因此,似乎 id 本身并不是唯一的 - 仅与它们的父级组合?这是正确的吗?

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

谢谢, -路易丝

【问题讨论】:

  • ID 无关紧要;您应该始终按键查询。一个键包括祖先路径(如果有的话)。

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


【解决方案1】:

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

Datastore 中的每个实体都有一个唯一标识它的键。这 密钥由以下组件组成:

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

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

【讨论】:

    猜你喜欢
    • 2018-12-26
    • 1970-01-01
    • 2019-04-28
    • 1970-01-01
    • 2021-06-12
    • 2019-06-08
    • 2023-03-28
    • 2020-07-31
    • 2013-10-11
    相关资源
    最近更新 更多