Google App Engine字符串和整数数据存储区密钥是否可能发生冲突?

时间:2016-05-09 09:54:27

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

我有一个类型为MyEntity的数据存储区实体,我希望有时会使用StringID个密钥,有时会使用IntID生成的AllocateIDs个密钥。

我可以安全地混合使用字符串和整数ID,而不必担心字符串ID会偷偷覆盖AllocateIDs生成的整数ID,反之亦然吗?

我问的原因是因为我假设字符串和整数ID使用相同的索引。是否可能意外地将表示字符串ID的字节序列与表示同一索引上的整数ID的字节序列相同?或者是以某种方式命名空间的字符串和整数ID以防止冲突?

1 个答案:

答案 0 :(得分:1)

是的,你可以安全地混合String&相同类型的内部ID - 只有相同的密钥(实体)不能同时使用两者。没有重叠的危险。我想他们会使用类似protocol buffers的内容将密钥序列化为[]byte

我在生产中使用它没有任何问题。

虽然它可能不是最好的设计,但它实际上取决于你的情况。