2016-04-11 75 views
1

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

保证系统分配的ID值对实体组是唯一的。

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

+0

你需要从你提到的链接中读取Ancestor Path。我相信你不需要父母的用户表,所以在这种情况下,你将永远有uniq ID,但仍然读取它 –

回答

2

正如Igor正确观察到的,只要实体没有父项,ID就是总是

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

请注意,ID不会是顺序的,因为它有助于在整个数据集中平均分配负载 - 这是数据存储设计的副产品。

+0

感谢澄清这对我来说!我的'用户'将没有父母的实体。只有一个实体=一个用户。 – user2924127