动态过滤数据存储中的应用引擎数据

时间:2011-08-31 00:09:29

标签: python google-app-engine

我的app-engine数据模型定义为:

class Event(db.Model):
    title = db.LinkProperty();
    refresh_interval = db.IntegerProperty(); 

class EventSchedule(db.Model):
    event = db.ReferenceProperty(Event)     # referencing the event
    refresh_date = db.DateTimeProperty();   # date & time of last successful refresh 

我想根据以下标准获取所有EventSchedule项目:

event_schedule.refresh_date + event.refresh_interval >= now

在SQL-land中,它看起来像:     DATE_ADD(event_schedule.refresh_date,event.refreshInterval)> = now()

这种连接操作对数据存储是否可行?

1 个答案:

答案 0 :(得分:4)

GAE数据存储无法实现此连接操作,并且在普通SQL数据库上也非常低效(因为它需要扫描整个event_schedule表)。

您应该在next_refresh个实体中存储DateTimeProperty EventSchedule,在创建实体时初始化为refresh_date + refresh_interval,然后只测试next_refresh >= now