Google App Engine - 为分组的组织和成员设计高效的数据存储模型

时间:2014-02-20 09:21:14

标签: google-app-engine data-modeling google-cloud-datastore jdo

我一遍又一遍地阅读Google文档并搜索了一下,但我很难为我的应用程序设计最有效的数据存储“模型”。我希望将延迟和数据存储操作保持在最低限度。我有关系数据库的背景知识,这在使用数据存储区时污染了我的想法。

我的申请背景:

国家组织被划分为区域组织和每个区域组织的层次结构,成为当地组织的等级。总体三级等级:国家 - 地区 - 地方。

每个组织都有成员;国家组织有直接成员,他们也是一个或多个地区组织和一个或多个地方组织的直接成员。同样,区域组织的直接成员是可能在一个或多个地区的一个或多个地方组织的直接成员。

任何当地组织的任何成员都可以是其他地区,国家组织中的任何其他地方,区域,当地组织的成员。

当地组织的成员由当地组织的区域组织和国家组织管辖,但不一定是区域或国家组织的直接成员。

任何直接成员/组织对(订阅)都有自己的属性,例如开始日期,状态等。

我最初的反应是定义3种类型:成员,组织和订阅。

组织实体将拥有与其父区域(或国家,如果它是区域)组织的关系的属性。从而形成一个等级。

订阅实体将拥有与成员关系的属性以及与组织关系的属性。这代表了直接会员资格。

会员实体有联系方式,例如电子邮件地址。

我想根据组织和成员的层次结构执行操作(例如发送电子邮件或消息)。例如:

  1. 向本地组织的直接成员发送消息。
  2. 向区域组织的直接成员发送消息,但不是 不直接的地区组织成员 区域组织的成员。
  3. 向区域组织的直接成员发送消息 该地区所有当地组织的直接成员。 (该 消息将发送给该​​地区直接成员的成员 和一个或多个子地方组织的直接成员 一次。)
  4. 有没有人对模型的设计有任何建议,即种类,关系,特别是关于为上述每个消息传递方案获取不同成员电子邮件地址列表所需的必要查询?

0 个答案:

没有答案