0

我有一个名为 Workout 的实体,具有以下属性:

锻炼日期

运行时间

椭圆时间

楼梯大师时间

卧推重量

我要求用户在使用以下格式“@Username”的应用程序之前创建一个帐户。我正在使用 stackmob 进行托管。创建用户后,我想保存用户在用户个人资料下创建的每个“锻炼”对象,以供以后获取。

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

问题 2:我还希望用户将这些对象发送给另一个用户。即将详细信息发送给@Trainer。我相信我将使用推送通知来通知收件人用户另一个用户向他们发送了一个对象——有点像 facebook 通知。此时@Trainer 可以下载接收到的对象并查看、编辑或删除它。等等

在不影响性能的情况下完成这两项任务的最佳方法是什么?

有人可以指出我正确的方向/谢谢!

4

1 回答 1

1

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

至于我的理解。您将不得不规范化您的数据库。数据库应该有以下

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

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

问题 2:我还希望用户将这些对象发送给另一个用户。即将详细信息发送给@Trainer。我相信我将使用推送通知来通知收件人用户另一个用户向他们发送了一个对象——有点像 facebook 通知。此时@Trainer 可以下载接收到的对象并查看、编辑或删除它。等等

您可以通过锻炼创建在用户与用户之间映射的事件。您可以将 Event 的唯一标识符与 Push Notification 一起传递。使用此唯一标识符,您可以获取发送给用户的锻炼。

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

由于您有一个远程用户数据库,因此通过使用 coredata,您可以保留并仅获取已更改内容的增量。或者,如果您可以负担得起每次可以在内存存储中使用来存储结构化数据并相应地编辑它们的数据。

于 2013-03-10T13:28:14.687 回答