我正在使用Parse.com为iPhone创建一个照片共享应用程序,到目前为止一切都很简单,我刚刚完成了将照片上传到Parse服务器的代码编写。
到目前为止,我一直在使用默认的"_User"类。以下是为每个用户存储的一些关键类型的数据:objectId、用户名、电子邮件,以及一个名为"friends"的数组对象,该对象包含用户添加到其好友列表中的数据库中其他用户的用户名。
现在,我需要设置用户之间的实际共享功能。我一直在浏览Parse文档,我需要决定是使用一对多、多对多还是一对一关系。根据我最终选择的是哪一个,我需要在使用指针、数组、解析关系或联接表之间做出决定。
我将快速解释我试图实现的"共享"功能:
-
对于我的照片应用程序,user1通过拍摄照片并选择将其发送给好友列表中名为user2的好友来开始"关系"。
-
然后将照片上传到Parse并发送给user2。
-
user2从user1接收照片。
-
user2打开照片,他们的工作是通过使用应用程序的编辑工具,在原始照片上随机绘制一些东西来"完成"关系"。示例:照片中,user2在user1的脸旁边画了一颗心。
-
当user2完成后,最终照片将保存到他们的个人资料中,并发送回原始发件人user1,此时"关系"就完成并完成/关闭了。
在阅读了这些文档并进行了自己的研究后,我得出的结论是,我需要使用Join Tables来使用多对多关系,这样我就可以包含元数据。
然而,我对objective-c和编程一般来说都是新手,如果我在开始之前没有征求意见和建议,那我就太懒了,因为我可能选择了错误的解决方案或不必要的解决方案。
您的问题更多地是关于数据库管理,而不是与Obj-C有关。
考虑在数据库中使用一个名为SharedImage
的新类,该类承载图像、指向发起人和收件人的链接(1对1,我们可以使用指针或关系)以及您需要的任何其他数据。
现在,您可以根据需要创建这些对象,并可以使用当前用户根据查询获取它们。
此外,对于您现有的friends
数组(您说它包含朋友的用户名),最好存储朋友的objectId
,而不是用户名(因为用户名通常可以更改,但objectId是静态的)。