1

我正在设计我的应用程序数据模型,但我有疑问,是使用父索引还是简单索引。

Site{
  @Id Long id;
}

Booking{
  @Id Long id;
  @Index/Parent Key<Site> site;
  @Index Date date;
}

我的 2 个实体是BookingsSites。关系是一个站点有很多预订。我想通过 2 种方式检索预订:getBookingBySiteAndDate(关键站点,日期日期)和getBookingsByDate(日期日期)

如果我使用Parent,s*econd query* 效率不高,因为我需要 Booking 的网站来检索所有预订。本网站可能已被删除。

如果我使用索引,则第一个查询效率不高,因为我需要在(日期,站点)中使用自定义索引并且成本很高。Appart 的创作并不一致,因为预订没有实体组,我有 1w/s 的限制。

你有什么建议?

4

2 回答 2

1

我不会使用父母。我为父母看到的唯一价值是您是否需要创建一个事务组。在您的示例中,我只需将站点的 ID 存储在预订表中,并为 getBookingBySiteAndDate 查询创建索引。它会非常快。索引将自动为您创建,您无需进行额外工作。

于 2012-06-14T15:13:16.357 回答
0

我已经仔细检查了 Objectify 邮件列表,并且没有限制将 getBookingsByDate 与父级和没有站点 ID 一起使用。

他们向我推荐的解决方案是使用@Parent,因为它更快,并且您不需要在 Site-Date 上使用双索引。

于 2012-06-28T15:38:42.873 回答