1

我有模型設置爲以下幾點:選擇孩子種從App Engine數據存儲 - 利弊

class Day(db.Model): 
    date = db.DateProperty() 
    total = db.FloatProperty() 

class Event(db.Model): 
    desc = db.StringProperty() 
    amount = db.FloatProperty() 

層次結構是這樣的:用戶>日>事件(用戶有天天有活動。 )

當用戶登錄時,我想選擇他們的日子(對於日期範圍可以說),然後每天我想要獲得他們的活動。我們只是說這些現在顯示在列表中。

我應該使用父屬性來創建一個明確的實體組嗎?或者,我應該在一天中爲用戶添加引用屬性,並在一天的事件中添加引用屬性?

每種方法的優缺點是什麼?性能考慮?可伸縮性考慮因素?而且,我將如何以最好的方式對此進行查詢。

謝謝!

回答

1

如果您需要將Day和Event模型事務性更新到一起(例如,需要使用每個事件更新「總計」字段),請使用實體組。否則,請使用引用屬性。

爲了最有效地選擇日期範圍內的所有事件,最好的選擇是稍微去規範化,並在事件上放置'date'屬性。然後,您可以在給定範圍內針對給定用戶的所有事件進行查詢,並從中獲取Day實體(如果您需要的話)。

相關問題