我正在用Python开发一个使用Google App Engine的应用程序。 在我的申请中,我应该节省学生的缺席和理由,所以我有一个班级:
class Absence(ndb.Model):
day_begin = ndb.DateProperty(required=True)
day_end = ndb.DateProperty(required=True)
justified = ndb.BooleanProperty()
date_range = ndb.ComputedProperty(lambda self: generate_date_range(self.day_begin, self.day_end), repeated=True)
student = ndb.KeyProperty(kind=SchoolUser, required=True)
对于每一天,教师都可以看到所有缺席的学生,因此我必须使用day_begin< = today< = day_end查询所有缺席。由于我无法使用多个不等式过滤器进行查询,现在我将该日期中的所有日期保存在date_range字段中,然后对其进行查询。 我想知道这种方法是否有效且有效,或者是否有更好的解决方案? 感谢!!!
答案 0 :(得分:1)
这是一个合理的解决方案,具体取决于您希望在数据和查询过滤器中看到的范围。 App Engine FTS解决方案类似于支持数字类型。如果遇到性能问题,您可以通过提供多个粒度级别(例如天,月,年)来改进它。
Geo Spacial查询会遇到同样的问题。他们使用空间填充曲线解决它,请参阅https://code.google.com/p/s2-geometry-library-java/。