【发布时间】:2012-12-19 12:53:34
【问题描述】:
我正在构建一个社交应用,其功能包括动态、个人资料、朋友和关注者。我正在使用核心数据来持久保存所有对象。当用户启动应用程序时,数据会从核心数据中获取并立即显示给用户,但我也在后台获取更新。
问题是目前我将所有内容都保存在核心数据中。例如,如果我访问朋友的个人资料,我会获取朋友的提要对象并将其保存在核心数据中。现在下次我访问同一个朋友的个人资料时,我只会显示最初保存的提要(并在后台更新)。
我应该这样做吗?将所有内容保存在核心数据中是否有任何问题(以获得更好的用户体验),或者当数据集变得更大时可能会出现任何限制或问题?在保存什么和不保存什么方面,我必须遵循一些好的做法吗?
谢谢
【问题讨论】:
-
您可以将所有内容保存到核心数据中,但是当数据出现问题并且您想要获取它们时会出现问题。如果您没有获取时间线中的所有条目,则没关系。您可以限制获取结果(返回的对象数量)或使用诸如时间之类的谓词进行限制。
-
抓取不会有问题。我只会获取所需的对象而不是所有内容。但我的问题是,例如保存朋友的提要对象是否是一种好习惯,因为我可能再次访问该朋友的个人资料并且再次需要保存对象的可能性很小。或者保存额外数据有什么缺点吗? PS。每次我们访问朋友的个人资料时,Facebook 应用程序都不会保存朋友提要并从服务器获取
-
从软件架构的角度来看,您可以缓存某些数据,但大多数社交网络应用程序都是瘦客户端应用程序。这意味着所有数据都是根据请求从服务器检索的。您的方法不是很常见。
-
感谢您的回复!我知道这并不常见......但我正在寻找“为什么”的答案。与在获取我可以保存的数据时显示活动指示器相比,我更愿意在我的视图中显示某些内容。而且数据无论如何都会在后台刷新,所以不会出现数据过时的问题
-
例如,最好只保存朋友最近的 20 个提要对象......这样每当我们“重新访问”任何朋友时,我们都不会看到臭气熏天的活动指标