Java 在GAE数据存储中创建活动时间线

Java 在GAE数据存储中创建活动时间线,java,google-app-engine,google-cloud-datastore,Java,Google App Engine,Google Cloud Datastore,我正在创建一个谷歌应用程序引擎应用程序,其中包含一种用户时间线(如在Facebook或Twitter中),它由一系列事件组成,使用数据存储 然而,我无法想出一些有效的方法。 在本解决方案中,我将实体定义为: 实体:活动:- -Id -详细信息… -… -时间戳 这是一种方法,以便我可以索引并根据时间戳以某种顺序对活动进行排序吗? 我正在使用Java并使用Objectify进行数据访问。规则是:如果要使用属性进行查询/排序,需要对其进行索引。 我认为这很简单,你所做的很有效 问题是:你还想要什么?

我正在创建一个谷歌应用程序引擎应用程序,其中包含一种用户时间线(如在Facebook或Twitter中),它由一系列事件组成,使用数据存储
然而,我无法想出一些有效的方法。
在本解决方案中,我将实体定义为:

实体:活动:-
-Id
-详细信息…
-…
-时间戳

这是一种方法,以便我可以索引并根据时间戳以某种顺序对活动进行排序吗?

我正在使用Java并使用Objectify进行数据访问。

规则是:如果要使用属性进行查询/排序,需要对其进行索引。 我认为这很简单,你所做的很有效

问题是:你还想要什么?性能是主要需求吗?(可能是因为你的应用程序似乎是面向用户的)

如果您只需要记录用户活动并检索它,我建议您将“活动”实体放在父实体“用户”或“用户活动”下

  • UserActivity(键名=用户id)
    • 活动(id、详细信息、时间戳[索引])
这样,您就可以使用用户的ID运行祖先查询来检索他的所有帖子。
唯一的缺点是,它将限制您每秒写入此实体组(基本上是“所有用户活动”)。

我会小心这样做,因为这违背了谷歌的最佳实践:“不要用单调递增的值(例如NOW()时间戳)索引属性”。维护这样的索引可能会导致热点,影响高读写速率应用程序的云数据存储延迟。”