我的背景是关系数据库,我正在用 Google AppEngine 做一些实验,主要是为了学习。我想构建一个“选举”应用程序,其中用户属于一个州(加利福尼亚州、纽约州、德克萨斯州等),他们选择一个政党(共和党、民主党等)并为特定年份投票(目前为 2012 年,但该应用程序可以在 2016 年重复使用)。
我希望用户能够查看他们的投票历史记录,并可能在当前选举中更改一次。此外,我将要求用户指定他们的邮政编码,并认为按州和/或邮政编码运行一些报告会很好。
使用关系数据库,您似乎会创建一些像这样的表:
Users(userid, username, city, state, zip)
UserVote(userid, year, vote)
然后使用 SQL 运行报表。对于 AppEngine 数据存储,运行汇总报告似乎有些困难。
我最初的想法是User
在每个用户可以包含一个列表的位置进行分片Votes
,然后可能会将聚合双重保存在其他地方。
有什么建议么?
PS 我已经看过AppEngine-MapReduce项目,但不确定这是否是矫枉过正。