Google cloud platform google云数据存储中的复合密钥
在GCP数据存储中,我有一个具有3个属性的类Google cloud platform google云数据存储中的复合密钥,google-cloud-platform,google-cloud-datastore,Google Cloud Platform,Google Cloud Datastore,在GCP数据存储中,我有一个具有3个属性的类 密钥(自动生成) 外部的 外部名称 我不能允许重复的externalName+externalId组合。有可能保持这种唯一性吗?数据存储不强制这样的约束。在这种情况下,最接近的方法是使用“externalId”作为键。选项: 按照Robert在回答中所说的去做,尽管您希望使用externalId和externalName的串联作为键。唯一的缺点是,如果externalId或externalName更改,则无法更改密钥。您必须删除当前对象并创建一个新对
我不能允许重复的externalName+externalId组合。有可能保持这种唯一性吗?数据存储不强制这样的约束。在这种情况下,最接近的方法是使用“externalId”作为键。选项:
externalId
和externalName
的串联作为键。唯一的缺点是,如果externalId
或externalName
更改,则无法更改密钥。您必须删除当前对象并创建一个新对象;这可能会对具有指向此对象的关键属性的任何其他对象产生级联影响unique
的单独表中。下面是一个来自webapp2
的源代码的示例,他们就是这样做的李>
使用externalId++externalName
作为键
例如:
externalName
,externalName | externalName
等..现在,我正在做第三个选项,但不知道这个限制的原因。迪纳摩:你觉得第三种选择有什么不便之处?如果您认为解决方案不够好,可以提交一个文件。此功能早在2008年就被请求了,但数据存储团队表示他们不会实现它:。我觉得这有点不方便,因为使用web应用程序代码实现数据库功能本身就很脆弱。你可能会错误地忽略它。鲁本C-这与不便无关。这是一个基本要求,所有的建议都是权宜之计,而不是解决方案。