2013-03-10 49 views
0

我有称为锻炼具有以下属性的实体:核心数据发送和接收的对象

workoutDate

runningTime

ellipticalTime

stairMastersTime

benchPressWeight

我要求在以下格式'@用户名'使用应用程序之前,请用户创建一个帐户。我正在使用stackmob进行托管。一旦用户被创建,我想保存用户在用户配置文件下创建的每个“锻炼”对象,以便以后获取。

问题1:如何避免让一个数据库中的所有用户对象保存在一个地方?我是否需要为每个用户名创建一个实体作为他们的个人资料,并将每个“锻炼”对象保存在他们的个人资料下?我希望用户能够根据日期获取这些对象。即2013年1月至6月?最近6周?并将对象显示在UITable中。

问题2:我还想让用户将这些对象发送给其他用户。即将详细信息发送给@Trainer。我相信我会使用Push通知来通知收件人用户另一个用户向他们发送了一个对象 - 有点像Facebook通知。此时@Trainer可以下载收到的对​​象并查看它,编辑它或删除它。 etc.

在不危及性能的情况下完成这两项任务的最佳方式是什么?

有人能指点我正确的方向/谢谢!

回答

1

问题1:如何避免有一个数据库,所有用户保存在一个地方 对象?我是否需要为每个 用户名创建一个实体作为他们的个人资料,并将他们的个人资料下的每个“锻炼”对象 保存下来?我希望用户能够根据日期获取这些对象。即2013年1月至6月?最后6个 周?并将对象显示在UITable中。

至于我的支持。你将不得不规范你的数据库。数据库应具有以下

  1. 用户
  2. 用户角色 - 一个与用户的关系很多。
  3. 特权 - 与用户角色的一对多关系。创建,更新,编辑和删除锻炼的权限
  4. WorkOut - 与用户的多对一关系
  5. 通知事件 - 与用户的多对多关系。

您应该为每个用户创建一个条目。关系将是用户< - >>锻炼,用户可以有许多锻炼(一对多),但锻炼将有一个用户(一对一的关系)。由于锻炼有锻炼日期,您可以轻松传递timeReference并要求将锻炼映射到用户。

问题2:我还希望用户将这些对象发送给 另一个用户。即将详细信息发送给@Trainer。我相信我会 使用推送通知通知收件人用户,另一个 用户发送了一个对象 - 有点像Facebook通知。 @Trainer那时可以下载收到的对​​象并查看它, 编辑它,或者删除它。等等。

您可以创建用户与锻炼之间映射的用户之间的事件。您可以传递事件的唯一标识符以及推送通知。使用这个唯一的标识符,您可以获取发送给用户的锻炼。

用户具有角色,且该角色具有权限。应允许他们根据许可修改锻炼。

由于您有一个远程用户数据库,通过使用coredata,您可以只保留和获取已更改内容的增量。或者,如果您每次都可以在内存存储中使用数据来获取数据,以存储结构良好的数据并相应地进行编辑。

+0

谢谢你的回复。澄清:当你说“数据库应该有以下1.User 2.用户角色...”我想你的意思是实体,对吧?当你说“你应该为用户创建一个实体。”你的意思是根据用户名创建一个实体?即如果用户名是@BodyBuilder,我将有一个实体名称BobyBuilder? “您可以传递事件的唯一标识符以及推送通知”唯一标识符将成为锻炼实体中的一个属性?任何关于我应该使用什么的建议? – user1107173 2013-03-10 15:04:10

+0

最后,在网上有我应该用CoreData做的任何教程,这将帮助我加快这种设置的速度?再次感谢! – user1107173 2013-03-10 15:04:25

+0

@ user1107173很抱歉让您感到困惑。通常我们以相同的方式使用实体和实例。每个用户都有一个实体,我指的是创建一个实例。我编辑了原文。创建唯一标识符以跟踪通知,它将与发件人和收件人有关。接收者(训练者)然后可以访问发件人的锻炼并修改它们。我从raywenderlich的教程开始了coredata http://www.raywenderlich.com/934/core-data-on-ios-5-tutorial-getting-started – Anupdas 2013-03-10 16:22:58