【问题标题】:Are Automatic Ids generated on GCP Google Datastore unique across namespaces for same entity kind在 GCP Google Datastore 上生成的自动 ID 在同一实体类型的命名空间中是否唯一
【发布时间】:2021-06-12 11:45:28
【问题描述】:

我的数据存储中有一种跨命名空间通用的类型。我在命名空间中创建具有相同类型的实体,并使用自动生成的 ID。

Datastore 模式也可以自动分配 ID。数据存储模式 生成一个未使用 ID 的随机序列,大约为 均匀分布。

数据存储本身是否确保不会跨命名空间使用相同的 ID。 也就是说,两个不同命名空间中的两个实体不应具有相同的 id。 例如:如果我在两个命名空间中有 kind 'Person',那么这两个命名空间中的 Person 实体应该总是被赋予唯一的 id。

我已经检查过这个类似的问题,但仍然不是很清楚 Google Cloud Datastore unique autogenerated ids

Documentation 还提到:

数据存储模式永远不会将相同的数字 ID 分配给两个实体 具有相同的父级,或两个根实体(那些没有 父母)。 和 系统分配的 ID 值保证对实体组是唯一的。

所以,这并没有在命名空间部分明确提及。

提前致谢。

【问题讨论】:

    标签: google-cloud-platform google-cloud-datastore


    【解决方案1】:

    Datastore 无法保证它在所有实体组和命名空间中分配唯一 ID,这虽然不太可能发生,但仍有可能发生。

    不过,您可以根据随机种子自己生成一个GUID,然后实施一种方法来检查该 ID 是否尚未使用,然后再分配它,以确保您的 ID 不会重复。

    【讨论】:

    • 您是否碰巧知道任何文档参考阐明了“未在所有命名空间中分配唯一 ID”。这应该会有所帮助。谢谢。
    猜你喜欢
    • 2018-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-16
    相关资源
    最近更新 更多