在 Java 中的 Google App Engine Datastore HRD 中,
我们不能直接使用 Query 对象或 GQL 进行连接和查询多个表
我只想知道我的想法是否正确
如果我们像父级 - 子级 - 子级一样按节点构建索引
节点 - 键 - 索引属性 - 设置
如果我们想收集所有子孩子和孙子的。我们可以收集层次过滤条件中匹配的所有键,并提供键的结果
在 Memcache 中,我们可以保存每个键并指向数据库实体,如果缓存没有也可以在使用一组键的单个查询中获取,我们可以从数据库中获取所有记录。
优点
1) 快速检索 - Google 建议使用按键获取实体。
2)单个事务足以收集多个表数据。
3) Memcache 和 Persistent Datastore 将代表相同的形式。
4)它只会扫描用户或父节点等组的相关数据。
缺点
1)数据库大小的元数据将增加,因此数据库大小增加。
2)如果单亲的索引需要超过 1MB,那么我们必须在数据库中拆分并另存为 blob。
这种结构是不是好方法。
如果我们在层次结构中有更深的层次,这将解决运行大量查询操作以收集所有依赖于父项的项目。
如果有多个父级 - 收集所有索引并获取与查询相关的键。使用键列表收集单个事务中的所有数据。
如果有人发现更多优点或缺点,请添加它们并证明这种方法是否正确。
非常感谢
克里希南