1

我的模型设置如下:

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

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

层次结构如下:用户>天>事件(用户有天。天有事件。)

当用户登录时,我想选择他们的日期(可以说是按日期范围),然后每天我想获取他们的事件。假设这些现在显示在列表中。

我应该使用父属性来创建显式实体组吗?或者我应该在一天为用户添加一个参考属性,并在一天的事件上添加一个参考属性?

每种方法的优缺点是什么?性能考虑?可扩展性考虑?而且,我将如何以最好的方式查询这个。

谢谢!

4

1 回答 1

1

如果您需要同时更新 Day 和 Event 模型(例如,需要随每个事件更新“total”字段),请使用实体组。否则,请使用参考属性。

为了最有效地选择日期范围内的所有事件,您最好的选择是进行一些非规范化,并在事件上放置一个“日期”属性。然后,您可以在给定范围内对给定用户的所有事件进行查询,并在需要时从中获取 Day 实体。

于 2010-03-03T10:41:17.467 回答