【问题标题】:Creating an Activity Timeline in GAE Datastore在 GAE 数据存储中创建活动时间线
【发布时间】:2013-11-04 07:02:08
【问题描述】:

我正在创建一个 Google App Engine 应用程序,其中包含一种 User-Timeline(如 Facebook 或 Twitter),它由一系列排序的事件组成按时间顺序,使用 Datastore
但是,我无法想出一些有效的方法。
在目前的解决方案中,我将实体定义为:

实体:活动:-
- 身份证
- 详情...
- ...
- 时间戳

这是一种方法,以便我可以根据时间戳索引并以某种排序顺序获取活动吗?
我正在使用 Java 并使用 Objectify 进行数据访问。

【问题讨论】:

    标签: java google-app-engine google-cloud-datastore


    【解决方案1】:

    规则是:如果你想使用属性查询/排序,你需要索引它。 我认为这很简单,你正在做的工作。

    问题是:你还想要什么?性能是主要需求吗? (可能是因为您的应用看起来是面向用户的)。

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

    • UserActivity(键名 = 用户 ID)
      • 活动(ID、详细信息、时间戳 [索引])

    这样您就可以使用您的用户 ID 运行祖先查询来检索他的所有帖子。 唯一的缺点是它会限制您在此实体组上每秒写入一次(基本上是“所有用户活动”)。

    【讨论】:

    • 我会小心这样做,因为它违反了 Google 的最佳实践:“不要索引具有单调递增值的属性(例如 NOW() 时间戳)。维护这样的索引可能会导致热点这会影响具有高读写率的应用程序的 Cloud Datastore 延迟。” cloud.google.com/datastore/docs/best-practices#indexes
    猜你喜欢
    • 2017-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-18
    • 2016-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多