我希望这不会被标记为“没有用”,因为我认为很多人都试图找到一种方法来保持HRD的一致性。
这是我用于我的应用程序的想法。我想得到你的意见。
我有一个健身应用程序。这当然是由锻炼和锻炼组成的。 HRD包含大约400个可供选择的练习,或者用户可以创建自己的练习(UExercise)。
当用户登录时,我将所有锻炼键加载到用户的“workoutKeys”列表中。同时我也将所有用户练习键(UExercise)加载到用户的“exerciseKeys”列表中。
如果用户想要从特定锻炼中添加/删除锻炼,则会加载锻炼,并将其所有锻炼键加载到锻炼中的“运动键”列表中。
在这看一个模式?
因此,每当我想查看用户(UExercise)或用户锻炼或该锻炼中的练习所创建的练习时,我都会使用这些键进行get()。
由于用户可能没有1000次锻炼,或者创建1000次锻炼,我认为这是一种安全快捷的方法,可以实现强一致性。
不是说这是每个应用程序的最佳方式。但对我来说,我相信它会运作良好。
如果我在这里遗失某些内容,或者没有正确考虑,我将非常感谢您的所有意见。
答案 0 :(得分:1)
好的......在仔细考虑了我的应用程序如何工作以及用户如何实际使用它之后,我决定放弃上面的想法并使用Ancestor Queries。
因此,对于上述模型,我提出了以下内容......
这允许我使用Ancestor Queries(非常一致)来提取最近添加或修改的实体。
由于用户不会大量修改这些实体,我认为写入的限制不会是一个因素。
这也让我忘记了Model对象的属性,这些属性本来就不应该存在。
顺便说一句,我也试过Memcache。我发现这是最终的痛苦。必须保持Memcache和数据存储同步似乎注入了比实际需要更多的复杂性。
但您的网站和结果可能会有所不同。这个想法适用于我的应用程序。
谢谢!