Google app engine 从应用程序引擎数据存储中选择子类-优缺点
我的模型设置如下:Google app engine 从应用程序引擎数据存储中选择子类-优缺点,google-app-engine,google-cloud-datastore,class-hierarchy,Google App Engine,Google Cloud Datastore,Class Hierarchy,我的模型设置如下: class Day(db.Model): date = db.DateProperty() total = db.FloatProperty() class Event(db.Model): desc = db.StringProperty() amount = db.FloatProperty() 层次结构如下:用户>日期>事件(用户有天。日期有事件。) 当用户登录时,我想选择他们的日期(比如说日期范围),然后为每一天获取他们的事件。让我
class Day(db.Model):
date = db.DateProperty()
total = db.FloatProperty()
class Event(db.Model):
desc = db.StringProperty()
amount = db.FloatProperty()
层次结构如下:用户>日期>事件(用户有天。日期有事件。)
当用户登录时,我想选择他们的日期(比如说日期范围),然后为每一天获取他们的事件。让我们假设这些现在显示在一个列表中
我应该使用parent属性创建显式实体组吗?或者我应该在一天为用户添加一个引用属性,并在一天的事件中添加一个引用属性
每种方法的优缺点是什么?性能考虑因素?可伸缩性考虑因素?还有,我将如何以最好的方式对此进行查询
谢谢 如果您需要同时以事务方式更新日期和事件模型(例如,“总计”字段需要随每个事件一起更新),请使用实体组。否则,请使用引用属性
为了最有效地选择一个日期范围内的所有事件,最好的选择是稍微去规范化,并在事件上放置一个“date”属性。然后,您可以查询给定用户在给定范围内的所有事件,并从中提取日实体(如果需要)。如果您需要一起事务性地更新日和事件模型(例如,“总计”字段需要随每个事件一起更新),请使用实体组。否则,请使用引用属性 为了最有效地选择一个日期范围内的所有事件,最好的选择是稍微去规范化,并在事件上放置一个“date”属性。然后,您可以查询给定用户在给定范围内的所有事件,如果需要,还可以从这些事件中获取日实体