【发布时间】:2012-01-13 20:18:54
【问题描述】:
我想要一个父类(组),任何数量的用户都可以加入。我想显示用户尚未在其中的所有组。如何建模此数据以及如何查询?很抱歉没有提供任何代码,但我根本不知道。
编辑: 在 SQL 中,这将通过一个 User 表、一个 Group 表和一个 GroupUser 交叉引用表来完成。查询会去:
select *
from Group
where Group.ID not in
(
select GroupID
from GroupUser
where UserID = @userid
)
【问题讨论】:
-
GQL 无法做到这一点。 (这也不是父子关系,只是你的术语有问题,不影响实际运行。)
-
那么,请尝试超越术语并提出解决方案。这种关系在现实中很常见。
-
您希望有多少组?您可以存储每个用户的组列表并将其与所有组的列表进行比较,但这不能很好地扩展。
-
我知道你要去哪里,但正如你所暗示的那样,这不合适,因为我的小组将在应用程序的整个生命周期内增长到数千人。请注意,用户/组只是我为了询问而编造的类型。
-
术语在这里很重要,因为“子”和“父”表示 App Engine 中实体关系的具体含义。
标签: python google-app-engine gql datastore