Google App Engine's Datastore类中使用的“父键”是什么?它用于什么?
答案 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正在发生。