我有一个名为Workout的实体,它具有以下属性:
workoutDate
runningTime
ellipticalTime
stairMastersTime
benchPressWeight
我要求用户在使用以下格式“@ Username”的应用程序之前创建帐户。我正在使用stackmob进行托管。创建用户后,我想保存用户在用户配置文件下创建的每个“Workout”对象,以便以后获取。
问题1:如何避免将一个数据库与所有用户对象保存在一个位置?我是否需要为每个用作其个人资料的用户名创建一个实体,并将每个“锻炼”对象保存在其个人资料下?我希望用户能够根据日期获取这些对象。即2013年1月至6月?过去6周?并将对象显示在UITable中。
问题2:我还希望用户将这些对象发送给其他用户。即将详细信息发送给@Trainer。我相信我将使用推送通知来通知收件人用户另一个用户已经向他们发送了一个对象 - 有点像facebook通知。此时@Trainer可以下载收到的对象并查看,编辑或删除它。等。
在不危及性能的情况下,完成这两项任务的最佳方法是什么?
有人可以指出我正确的方向/谢谢!
答案 0 :(得分:1)
问题1:如何避免为所有用户提供一个数据库 对象保存在一个地方?我是否需要为每个实体创建一个实体 用作“个人资料”并保存每个“锻炼”对象的用户名 他们的个人资料?我希望用户能够获取这些 基于日期的对象。即2013年1月至6月?最后6 周?;并将对象显示在UITable中。
至于我的理解。您必须规范化数据库。数据库应该有以下
您应该为每个用户创建一个条目。关系将是用户< - >>锻炼,用户可以有许多锻炼(一对多),但锻炼将有一个用户(一对一的关系)。由于锻炼有workoutDate,您可以轻松传递timeReference并请求映射到用户的锻炼。
问题2:我还希望用户将这些对象发送给 另一个用户。即将详细信息发送给@Trainer。我相信我会 使用推送通知通知收件人用户另一个 用户向他们发送了一个对象 - 有点像facebook通知。 此时@Trainer可以下载收到的对象并查看它, 编辑或删除它。等
您可以使用锻炼创建在用户与用户之间映射的事件。您可以传递Event的唯一标识符以及推送通知。使用此唯一标识符,您可以获取发送给用户的锻炼。
用户具有角色,该角色具有权限。应允许他们根据许可修改锻炼。
由于您拥有远程用户数据库,因此通过使用coredata,您可以保留并仅获取已更改内容的增量。或者,如果您每次都可以使用内存存储来存储数据结构并相应地编辑它们,那么您是否有能力获取数据。