【问题标题】:Which Data Model is the best for storing instagram like data?哪种数据模型最适合存储类似 instagram 的数据?
【发布时间】: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


【解决方案1】:

你应该使用

class Post {

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

}

class User {
    let id: String
}

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

【讨论】:

  • 查看更新。而且这个 DM 看起来很乱,而且很难用没有?
  • @Outsider 我不知道你真正想要什么。对于您的两个选项,第一个更好。
【解决方案2】:

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

第一个选项更好。每个帖子都应始终保留参考 谁发的。另一方面,用户不需要参考 到他们的每一个帖子。想象一个你只想 显示用户的姓名和个人资料图片,为什么要获取所有 在那种情况下发帖?此外,您的案例中的模型不应包含 指向像图像这样的引用类型的变量,最好 将它们保存在值类型中,例如指向图像 url 的字符串 并根据需要下载图像。

– 加洛托雷斯塞维利亚

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-02
    • 2012-06-07
    • 2015-07-09
    • 2023-01-28
    • 2021-11-16
    • 2010-12-29
    • 1970-01-01
    相关资源
    最近更新 更多