【发布时间】:2017-09-29 19:29:09
【问题描述】:
Google App Engine NDB 数据模型如下:
Users
Username
FirstName
LastName
Posts
PostID
PosterUsername
SubscribedPosts
PostID
SubscriberUsername
对于特定用户,我想返回用户订阅的所有帖子并在页面上显示。
由于美妙的 NDB 不支持 JOIN,我们执行两个查询:
postIDList =
SubscribedPosts.query(SubscribedPosts.SubscriberUsername == 'johndoe').fetch()
这为我们提供了订阅帖子的列表。那么如何获取我的 postIDList 列表并将其用作 Posts 查询的过滤条件?
类似:
results = Posts.query(Post.PostID IN postIDList.PostID)
在普通的关系数据库中,这将是一个使用表连接的简单查询。这在 Google 的 ndb 中是如何完成的?
【问题讨论】:
-
我是否必须在帖子中添加一个重复的列(即:列表),这将是订阅该帖子的用户名列表?而不是将订阅帖子用于多对多关系的规范化关系设计?
标签: google-app-engine app-engine-ndb