在Google App Engine中存储人员年龄是一种好习惯吗?

时间:2013-08-10 10:49:05

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

我需要搜索成千上万的“人物”类型的记录并获取它们,例如:年龄在25到30之间。因此,如果我将年龄存储在写入时间本身并运行调度程序,这是一个很好的做法。更新每个人的年龄。为当天生日的所有人每天运行的调度程序。我知道关系数据库这是错误的。在GAE / J有经验的人可以指导我。

1 个答案:

答案 0 :(得分:0)

我的建议可能有点偏离主题,但可以使你的工作更简单。

使用非规范化的数据库架构可能对您的用例有意义。但是我相信你可以在没有任何后勤工作的情况下实现这一目标。

我将日期作为整数存储在数据库中:

  • 例如2011-01-01您将存储:20110101
  • ...

之后你会这样做:

  • 让我们说今天是20130810而你搜索1岁的人:
    • 所以你最终得到的结果是:BETWEEN(20110811,20120810)

问题在于你每次搜索之间都会这样做(因此不会涉及数据库索引),但如果你无论如何都要搜索年龄间隔,那么不应该因为你的查询会跳过索引而受到伤害