哪种数据模型最适合存储instagram之类的数据?

时间:2019-03-01 20:28:24

标签: ios swift data-modeling datamodel

我有一个类似于Instagram的应用,在其中我必须获取帖子和用户才能使用它们。现在,我需要在两个DM之间决定如何存储帖子,以下是两个选项:

选项1 :每个帖子都有一个保存的用户,但是该用户对象只是一个用户对象,这意味着效率不高,因为我必须将相同的数据保存到User中对象

class Post: NSObject {

    var images = Image()
    let user = User()
    var snapshot : [String : AnyObject]?

}

选项2 :此处的post对象不会跟踪用户,因为user对象会跟踪每个帖子

  class User: NSObject {

    var posts = [Post]()
    //Other data...

}

所以我的问题是,哪种DM最适合我的用例(即能够以类似于Instagram的格式获取和显示帖子)

2 个答案:

答案 0 :(得分:0)

您应该使用

class Post {

    var images: [String]
    let userId: String
    var snapshot : [String : AnyObject]?

}

class User {
    let id: String
}

获取帖子时,您可以执行以下操作。 repo.findPostsByUserId(userId, page, size)

答案 1 :(得分:0)

@ Galo Torres Sevilla评论是此处的最佳答案,所以我将其添加为正确答案:

  

第一种选择更好。每个帖子都应始终引用   谁张贴的。另一方面,用户不需要参考   他们的每个职位。想象一个情况,您只想   显示用户的姓名和个人资料图片,为什么要获取所有   在那种情况下发帖?另外,您所用的模型不应包含   指向图像等参考类型的变量,最好   保持它们为值类型,例如指向图像网址的String   并根据需要下载图像。

–盖洛·托雷斯·塞维利亚