2011-08-31 32 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

謝謝 - 我沒有想到要扭轉那裏的邏輯。 –

相關問題