【发布时间】:2019-07-23 21:53:58
【问题描述】:
我有一个类似于 Instagram 的应用程序,我必须在其中获取帖子和用户才能使用它们。现在我已经到了需要在两个 DM 之间决定如何存储帖子的地步,以下是两个选项:
选项 1:每个帖子都有一个保存用户,但用户对象只是一个用户对象,这意味着它可能效率低下,因为我必须继续将相同的数据保存到用户中对象
class Post: NSObject {
var images = Image()
let user = User()
var snapshot : [String : AnyObject]?
}
选项 2:这里的帖子对象不会跟踪用户,因为用户对象会跟踪每个帖子
class User: NSObject {
var posts = [Post]()
//Other data...
}
所以我的问题是,哪个 DM 最适合我的用例(即能够以类似于 Instagram 的格式获取和显示帖子)
【问题讨论】:
-
第一个选项更好。每个帖子都应始终保留对发布者的引用。另一方面,用户不需要参考他们的每个帖子。想象一下,您只想显示用户的姓名和个人资料图片,为什么要在这种情况下获取所有帖子?此外,您的模型不应包含指向图像等引用类型的变量,最好将它们保存在值类型中,例如指向图像 url 并根据需要下载图像的字符串。
-
好的谢谢这很有意义@GaloTorresSevilla
标签: ios swift data-modeling datamodel