代码之家  ›  专栏  ›  技术社区  ›  fuentesjr

谷歌应用引擎中的父属性和引用属性有什么区别?

  •  10
  • fuentesjr  · 技术社区  · 16 年前

    据我所知,db.model的父属性(通常在构造函数调用中定义/传递)允许您在数据模型中定义层次结构。因此,这会增加实体组的大小。但是,我不太清楚我们为什么要这样做。这是为了严格遵守酸的规定吗?我想看看每个场景都是最适合或更合适的。

    2 回复  |  直到 16 年前
        1
  •  15
  •   Nick Johnson    16 年前

    有几个不同之处:

    • 具有相同祖先的所有实体都在同一实体组中。事务只能影响单个实体组内的实体。
    • 对单个实体组的所有写入都是序列化的,因此吞吐量受到限制。
    • 父实体在创建时设置,并且是固定的。可以随时更改引用。
    • 对于引用属性,只能查询直接关系,但是对于父属性,可以使用.ancestor()筛选器查找从给定祖先派生的所有内容(直接或间接)。
    • 每个实体只有一个父级,但可以有多个引用属性。
        2
  •  8
  •   Alexander Kojevnikov    16 年前

    实体组(由父属性定义)的唯一目的是启用不同实体之间的交易。如果您不需要这些事务,就不要使用实体-组关系。

    我建议你重新阅读 Keys and Entity Groups 我读了好几遍才领会到这个想法。

    此外,还可以观看这些会谈,其中包括讨论交易和实体团体: