开发中我有一个空的数据存储。 在线我有一个拥有数百万实体的数据存储。数据存储实体密钥冲突
在开发数据存储(本地)中,我放置了一个新实体(生成一个新密钥)。 然后我导出实体并将其放入在线数据存储区(使用本地生成的密钥)。在本地生成的密钥已经分配给在线数据存储中的实体的风险是什么?
或者,它会更简单通过本地创建密钥这样避免相撞:
for (int i = 0; i < data.size(); i++) {
Key k = KeyFactory.createKey(kind, new Date() + i);
// continue to creating and inserting entities...
}
感谢。
创建的,但我们在这里讨论的是将实体(因此创建密钥)放在本地数据存储中的开发模式,然后将它们导出到生产在线数据存储区在我看来,在这种情况下防止冲突的唯一方法是使用某种时间相关的ID /名称创建密钥。 –
只有当您以这种方式生成100%的实体键时(即,确切地说0放不带ID),并且以这样的时间分辨率来创建零重复将被创建时,这将仅工作。如果您已经有一个以普通方式创建的实体,它可能会失败。 – mjibson