什么是Google App Engine数据存储“父键”?

时间:2012-03-15 18:31:50

标签: java python google-app-engine google-cloud-datastore

Google App Engine's Datastore类中使用的“父键”是什么?它用于什么?

3 个答案:

答案 0 :(得分:2)

阅读this可能会对您有所帮助。

来自文档:

  

要指定实体的父级,请使用模型的父参数   创建子实体时的类构造函数。这个的价值   参数可以是父实体本身或其密钥;你可以得到   通过调用父实体的key()方法键。以下示例   创建一个实体地址的实体,并显示两种指定方式   员工实体作为其父级:

#Create Employee entity
employee = Employee()
employee.put()

#Set Employee as Address entity 's parent directly...
address = Address(parent=employee)

# ...or using its key
e_key = employee.key()
address = Address(parent=e_key)

# Save Address entity to datastore
address.put()​

答案 1 :(得分:2)

数据存储区中的实体可以选择具有父实体; “父密钥”是父实体的密钥。

最初(并且仍然在主从数据存储区中),事务只能在同一实体组中的实体之间进行,实体组是具有共同祖先实体的实体集。在HR数据存储区中,跨实体组事务可用​​,但最多只能有5个实体组。

因此,父实体用于创建要在事务中使用的实体组。请注意,具有太大的实体组会严重影响写入速度,因为当写入组中的一个实体时,整个组基本上都是锁定的;尝试对单个实体组进行过多写操作会导致数据存储区争用豁免。

答案 2 :(得分:2)

父键用于建立实体组。当一个或多个数据存储区实体共享一个祖先时,它们被称为同一实体组的一部分。

这就如何编写事务数据存储区操作起到了作用。如果要修改的所有实体不属于同一实体组,则必须指定Cross-group transaction正在发生。