2013-10-11 49 views
0

我正在使用Google App Engine的數據存儲並尋找用於用戶狀態的「喜歡」功能的設計解決方案(喜歡facebook) 「)GAE數據存儲設計存儲用戶狀態的「喜歡」機制(如Facebook的「喜歡」)

我已經通過了Sharding Counters的概念(https://developers.google.com/appengine/articles/sharding_counters),發現它很好,適用於計數可以遞增或遞減計數的喜歡數。但我想存儲喜歡這個狀態的userId。所以我嘗試了相同的分片概念來存儲userId,但是面臨以下問題, *首先將userId分割爲count這樣很好? *如果是這樣,當用戶不喜歡它,我已經從共享列表中刪除用戶標識。爲了實現這一點,我需要遍歷所有分片數據存儲並執行userId檢查並刪除

對此解決方案或其他解決方案有何建議?

謝謝!

回答

0

Sharding不適用於這種情況。分片是爲了避免在短時間內對同一個對象進行多次寫入。因爲許多人喜歡同一個帖子,所以對'喜歡'的計數器有意義。當他們喜歡什麼的時候不一樣。這些對象只會改變每個用戶,許多用戶不會共享同一個對象。只需將它們存儲在非分片表中,就像在sql中一樣。

+0

好的。所以我們需要另外一張具有「user id」 - 「post id」結構的表格。但是,我們如何纔能有效地計算帖子喜歡以及如何獲得喜歡的帖子? –

+0

對於大數據,您需要基於或類似於mapreduce的內容 –

相關問題