有人可以说明如何在Google应用引擎数据存储中存储和轻松查询分层数据吗?
答案 0 :(得分:21)
最佳选择取决于您的要求。这里有一些解决方案(我假设你使用的是Python,因为你没有指定):
还有其他方法,但这三种方法应涵盖最常见的情况。
答案 1 :(得分:3)
嗯,您应该尽量保持数据的线性。如果您需要快速查询数据的树结构,您可能必须将其存储在数据库中(或者如果您愿意,可以使用JSON编码),如果这对您的数据是可能的,或者您必须生成可以生成的树索引用于快速查询树结构的一部分。但是,我不确定Google App Engine在更新这些索引时的表现如何。
对于Google App Engine,您的主要关注点应该是减少需要进行的查询次数,并确保查询尽可能少地返回。操作很昂贵,但存储不是,所以冗余不应该被视为坏事。
以下是关于我通过Google搜索找到的主题的一些想法(虽然对于MySQL,但你可以从中得到一般的想法):Managing Hierarchical Data in MySQL
啊,这是Google App Engine的讨论:Modeling Hierarchical Data
答案 2 :(得分:0)
一种方法是使用Model的父属性。然后,您可以使用query.ancestor()和model.parent()函数。
我想这取决于你想对这些数据做什么样的操作,这将决定如何最好地表示它。