我的背景是關係數據庫的,我正在做一些實驗,主要用於學習Google AppEngine。我想建立一個「選舉」應用程序,用戶屬於一個州(CA,NY,TX等),他們選擇一個黨(共和黨,民主黨等),並投票支持某一年該應用可以在2016年重新使用)。谷歌AppEngine分片問題
我希望用戶能夠看到他們的投票歷史,並且可能會在當前選舉中更改一次。此外,我將要求用戶指定他們的郵政編碼,並認爲按州和/或郵政編碼運行一些報告會很好。
使用關係數據庫,看來你會創造一些像這樣的表:
Users(userid, username, city, state, zip)
UserVote(userid, year, vote)
然後使用SQL來運行報告。使用AppEngine數據存儲區看來,運行彙總報告似乎是一項挑戰。
我最初的想法是按User
分片,其中每個用戶可以包含一個Votes
的列表,然後可以雙重保存其他地方的聚合。
有什麼建議嗎?
P.S.我見過AppEngine-MapReduce項目,但我不確定這是否會過度。
你是什麼意思的'用戶分片'?爲什麼mapreduce過度殺傷? – 2011-05-30 21:53:02
關於'用戶分片' - 根據我對數據存儲的有限瞭解,除非存在層次關係,否則無法跨實體加入。仔細挑選「根」實體(即用戶)可讓您按相關實體進行查詢。關於mapreduce的過度殺傷 - 看起來它可能是一種計算聚合的方法,但在我嘗試學習的許多其他事物之上增加了一層額外的複雜性。 – dana 2011-05-31 14:46:09