2011-08-31 31 views
2

我的应用程序引擎的数据模型定义为:过滤应用程序引擎数据动态

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()

这种连接操作是否适用于d ata商店?

回答

4

这种连接操作对于GAE数据存储是不可能的,而且在普通SQL数据库上也非常低效(因为它需要扫描整个event_schedule表)。

而应该存储next_refreshDateTimePropertyEventSchedule实体,初始化为refresh_date + refresh_interval创建实体时,并简单地测试next_refresh >= now

+0

谢谢 - 我没有想到要扭转那里的逻辑。 –

相关问题