决定是否使用与Parse.com for iOS照片共享应用程序的一对多,多对多或一对一的关系

我正在使用Parse.com为iPhone创build一个照片分享应用程序,到目前为止,所有事情都非常简单,我刚写完上传照片到Parse服务器的代码。

到目前为止,我一直在使用默认的“_User”类。 以下是为每个用户存储的一些关键数据types:objectId,用户名,电子邮件以及名为“friends”的数组对象,其中包含数据库中用户添加到其好友​​列表中的其他用户的用户名。

现在,我需要设置用户之间的实际共享function。 我一直在浏览Parse文档,我需要决定是使用一对多,多对多还是一对一的关系。 取决于哪一个我最终select,然后我将需要决定使用指针,数组,parsing关系,或连接表。

我要快速解释我正在尝试实现的“共享”function:

  1. 对于我的照片应用程序,user1通过拍照并select将其发送给名为user2的朋友列表上的朋友来启动“关系”。

  2. 照片然后上传到parsing并发送到用户2。

  3. user2收到来自user1的照片。

  4. user2打开照片,这是他们的工作,通过使用应用程序的编辑工具,并在原始照片上随机绘制的东西“完成”“关系”。 例如:user2在照片中的user1的脸部旁边画一个心脏。

  5. 当用户2完成时,最终的照片被保存到他们的个人资料中,并且还被发回到原始发送者user1,并且“关系”现在完成并完成/closures。

在阅读完文档并进行自己的研究之后,我得出结论:我需要使用“连接表”来使用“多对多”关系,以便可以包含元数据。

但是,我对于Objective-C和编程通常是陌生的,如果我在开始之前不要求input和build议,那么我可能会select错误的解决scheme或不必要的解决scheme。

你的问题更多的是关于你的数据库pipe理,而不是Obj-C。

考虑在您的数据库中使用一个名为SharedImage的新类,它包含图像,一个到创build者和收件人的链接(1到1,所以我们可以指针或关系)以及您需要的任何其他数据。

现在您可以创build这些对象,您可以使用当前用户根据查询来获取这些对象。

另外,对于你所说的现有的friends数组,你所拥有的朋友的用户名 – 可能会更好地存储朋友的objectId而不是用户名(因为用户名通常可以改变,但objectId是静态的)。