【发布时间】:2012-04-27 20:10:53
【问题描述】:
我正在研究谷歌应用引擎的数据存储,并且正在开发一个用于管理事件的应用。 我有 2 个实体:
- user
- event
- attribute eventDate
一个用户可以关注一个或多个事件,所以我创建了链接表
- UserEvent
-User key
-Event key
我的问题是我想要一个用户关注的事件列表,按 eventDate 排序。
我该怎么办?
我找到了 3 个解决方案,但我不喜欢任何人...
- 查询所有排序的事件,然后迭代并只选择 一个在 UserEvent 上有一个发生(我不喜欢,因为 可能我会有数千个事件,但只有一个用户关注 几个..)
- 查询所有用户事件(按userKey过滤)并放入结果 在有序列表中(我不喜欢,因为我必须在 一次,不分页)
- 在表 UserEvent 中添加属性 eventDate (我不喜欢,因为 如果一个活动有 3000 名关注者,我必须进行 3000 次更新...)
谢谢 亚历山德罗
【问题讨论】:
-
或者,如果您总是查询 1 个给定用户的事件,您可以考虑在用户实体中存储事件的 ListProperty。
-
嗯,没错,我查询的是单用户。但是如果我把所有关注的事件都放在用户中,用户实体可能会变得太大?
标签: google-app-engine google-cloud-datastore