生成唯一 ID GAE 数据存储
Generating a unique id GAE datastore
在MySQL中我使用自动递增为每个用户生成一个id。我想在 Google 数据存储中创建一个类似的用户 table,其中用户的 ID 将是唯一的。根据这些文档:https://cloud.google.com/appengine/docs/java/datastore/entities
System-allocated ID values are guaranteed unique to the entity group.
但是根据这个post:Ever see duplicate IDs when using Google App Engine and ndb? ID 不是唯一的。我需要这个 id 是唯一的。这很令人困惑,因为在文档中它说 id 是唯一的,但是从这个 post 它说 id 不是唯一的它是唯一的键。我的 objective 不允许两个用户拥有相同的 ID。我怎么能保证这一点?我更希望数据库处理这种形式,而不是我必须使用诸如 uuid 之类的东西手动创建大 ID。
正如 Igor 正确观察到的那样,只要实体没有父级,ID 始终 是唯一的。
我想不出任何理由让用户实体成为其他实体的子实体,所以你是安全的。
请注意,ID 不会是连续的,因为它有助于在整个数据集中平均分配负载 - 这是数据存储设计方式的副产品。
在MySQL中我使用自动递增为每个用户生成一个id。我想在 Google 数据存储中创建一个类似的用户 table,其中用户的 ID 将是唯一的。根据这些文档:https://cloud.google.com/appengine/docs/java/datastore/entities
System-allocated ID values are guaranteed unique to the entity group.
但是根据这个post:Ever see duplicate IDs when using Google App Engine and ndb? ID 不是唯一的。我需要这个 id 是唯一的。这很令人困惑,因为在文档中它说 id 是唯一的,但是从这个 post 它说 id 不是唯一的它是唯一的键。我的 objective 不允许两个用户拥有相同的 ID。我怎么能保证这一点?我更希望数据库处理这种形式,而不是我必须使用诸如 uuid 之类的东西手动创建大 ID。
正如 Igor 正确观察到的那样,只要实体没有父级,ID 始终 是唯一的。
我想不出任何理由让用户实体成为其他实体的子实体,所以你是安全的。
请注意,ID 不会是连续的,因为它有助于在整个数据集中平均分配负载 - 这是数据存储设计方式的副产品。