在AppEngine中引用父/祖先关系的属性时,最佳做法是什么?我应该添加一个从父项指向子项的引用属性,以便于访问父项中的子项,或者我应该“吮吸它”并从父项执行祖先查询以获取它的子项。
答案 0 :(得分:2)
如果只有一个孩子,您可以使用已知的key_name,这样您就可以直接获取孩子(因为您知道父母的密钥)。这可能很有用,因为只要您知道父母的密钥名称或ID,就可以轻松直接获取孩子。
child_key = db.Key.from_path('ChildKind', 'knownname', parent=parent_key)
child = db.get(child_key)
如果有多个子节点,您可以在父节点上存储密钥列表(可以是未编制索引的),或使用祖先查询。我想说这取决于您的数据如何更新,报告(呈现)和数据量。换句话说,它取决于您的应用程序的需求。