Appengine实体设计建议

时间:2013-11-17 02:23:05

标签: java google-app-engine google-cloud-datastore objectify

我对如何实施此要求感到困惑: 我们说我有以下联系方式

  • 学生,
  • 导师,
  • AdminStaff。

我不确定在DataStore中构建它的最佳方法是什么:

  • 我是否有一个Contact实体,它将包含共享字段以及给定类型的相应额外字段
  • 或者我应该有三个单独的实体

第一种方法允许我搜索我的所有联系人,第二种方法是在我只需要某种联系时避免额外过滤。

但是我还有一个要求,我不确定如何适应这些方法。如果我与多个性格有联系,例如导师和AdminStaff。这表明我有一个单独的联系实体并链接到其各种个性。因此,对于上面的示例,我将有关于该人员的数据保存在三个实体中,联系人,导师,AdminStaff。

我很感激任何建议

1 个答案:

答案 0 :(得分:1)

关于您搜索所有联系人的问题 - 即使您有3种不同的实体类型,我认为您仍然可以创建一个允许您搜索所有联系人的索引。

我不知道有多少属性对于不同的联系人角色是唯一的,但是我会担心创建一个包含所有这些属性的单个巨型类/实体 - 它可能是一个非常庞大和混乱类。

而且,正如您所指出的,您的最终要求确实会使事情变得更加复杂。它表明,也许您应该为所有角色创建一个联系类/实体,然后为可以@嵌入到联系实体的3个角色创建类。