2014-01-21 35 views
1

我希望這不會被標記爲「沒有幫助」,因爲我認爲很多人都在試圖找出一種方法來保持HRD的一致性。數據存儲(HRD)中的強一致性...我的想法

這是我用於我的應用程序的想法。我想聽聽你的意見。

我有一個健身應用程序。這當然是由鍛鍊和練習組成的。 HRD包含大約400個練習選擇,或者用戶可以創建自己的練習(UE使用)。

當用戶登錄時,我所有的鍛鍊鍵加載到對用戶產生「workoutKeys」名單。同時,我還將用戶的所有用戶練習鍵(UExercise)加載到用戶的「exerciseKeys」列表中。

如果用戶想從一個特定的鍛鍊添加/刪除演習,鍛鍊加載其所有運動鍵被裝入的鍛鍊「exerciseKeys」名單。

看到這裏的模式?

所以每當我要查看用戶(UExercise)或用戶鍛鍊,或在鍛鍊的練習創建練習,我使用這些密鑰一個get()。

因爲用戶可能不會有鍛鍊的1000年代,或者創建練習的1000年,我認爲這是實現強一致性安全,快捷的方式。

不要說這是每個應用的最佳方式。但是對於我來說,我相信它會運作良好。

我會非常感謝您的所有意見,如果有什麼我可能會在這裏失蹤,或沒有適當考慮。

回答

1

好吧......一番深思熟慮的我的應用程序將如何工作,以及用戶如何實際使用它之後,我決定放棄上述想法,並與祖先查詢去。

因此,對於上述模型,我想出了下面......

  • 對於一個鍛鍊,我使用戶父
  • 對於運動創建了一個用戶(UExercise),我使用戶 父

這使我可以使用祖先查詢(強烈一致)拉最近添加或修改的實體。

由於這一事實,用戶將不能修改這些實體連接質量,我認爲對寫入的限制將不會是一個因素。

這也擺脫了模型對象的屬性,它本來不應該在那裏。

順便說一下,我也試過了Memcache。我發現這是最終的痛苦。不得不保持Memcache和Datastore同步,似乎注入了比真正需要更多的複雜性。

但您的網站,結果可能會有所不同。這個想法適用於我的應用程序。

謝謝!

相關問題