google-app-engine - 生成唯一 ID GAE 数据存储

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

在 MySQL 中,我使用自动增量为每个用户生成一个 id。我想在 Google 数据存储中创建一个类似的用户表,其中用户的 id 是唯一的。根据这些文档:https://cloud.google.com/appengine/docs/java/datastore/entities

System-allocated ID values are guaranteed unique to the entity group.

但根据这篇文章:Ever see duplicate IDs when using Google App Engine and ndb? id 不是唯一的。我需要这个 id 是唯一的。这很令人困惑,因为在文档中它说 id 是唯一的,但从这篇文章中它说 id 不是唯一的,而是唯一的键。我的目标是不让两个用户拥有相同的 id。我如何保证这一点?我希望数据库能够处理这种形式,而不是我必须使用 uuid 之类的东西手动创建大 ID。

最佳答案

正如 Igor 正确观察到的,只要实体没有父实体,ID总是是唯一的。

我想不出任何理由让用户实体成为其他一些实体的子实体,所以你是安全的。

请注意,ID 不会是连续的,因为它有助于在整个数据集中均匀分布负载 - 这是数据存储区设计方式的副产品。

关于google-app-engine - 生成唯一 ID GAE 数据存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36539827/

相关文章:

java - 维护客户端http客户端-服务器连接的正确方法?

python - 尝试将字符串属性设置为模型另一部分的 md5 的默认值

google-app-engine - 我无法使用 google.golang.org/appengine 模块将 Go 模块部署到 App Engine

java - AppEngine 数据存储区持久性管理器获取除

php - App Engine 实例激增

java - 在 Google App Engine 中获取屏幕尺寸

java - 如何使用 JPA 更改 GAE 数据存储中一个实体的父实体?

java - 如何在 Google App Engine 中使用 Joda LocalDate 和 DateTime?

java - 为什么 Google 数据存储区允许重复的 ID/名称?管理这个问题的最佳实践是什么?

python - 谷歌应用程序引擎 - NDB - KEY