我的应用程序引擎数据模型定义为:
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中,它看起来像: 添加日期(事件)_schedule.refresh\u日期, 事件.refreshInterval)>;=现在()
这种连接操作对数据存储是否可行?你知道吗
GAE数据存储不可能执行此连接操作,而且在普通SQL数据库上效率也很低(因为它需要扫描整个event\u schedule表)。你知道吗
相反,您应该将
next_refresh
DateTimeProperty
存储在EventSchedule
实体中,在创建实体时初始化为refresh_date + refresh_interval
,然后只需测试next_refresh >= now
。你知道吗相关问题 更多 >
编程相关推荐