【发布时间】:2016-12-09 10:24:59
【问题描述】:
我有一个 Event 模型,具有 start_time 和 end_time 的 ndb.DateTimeProperty() 属性类型。
我通常使用Event.query(Event.start_time >= START_OF_THE_MONTH, Event.start_time <= END_OF_THE_MONTH) 之类的查询来查询事件。
添加对重复事件的支持的最佳方法是什么?
首先想到的是单独创建每个事件,但每天重复一个事件 - 这是许多已创建的实体(它们需要创建到什么程度?一年?十年? )。虽然这种方法会使现有的代码和查询工作 - 它非常昂贵且效率低下。
接下来,为整个重复事件只创建一个实体,其属性存储事件重复频率的规则,然后,除了上面的查询 - 再次查询模型以获取所有重复事件可能有效,但仅直到有太多重复事件发生的时候......
还有什么适合ndb 并且可扩展,最好是对现有代码/查询的更改最少?
【问题讨论】:
-
您希望每个月管理多少事件?
-
@janscas 我根本不希望有很多,每个用户不应该超过〜15-20,我只是担心用户可能会创建几个日常重复事件的最坏情况(测试事物或其他东西,如果为每个事件创建一个实体并请求每月视图,这将使该用户的应用程序稍微变慢)。
标签: python google-app-engine calendar google-cloud-datastore app-engine-ndb