代码之家  ›  专栏  ›  技术社区  ›  nacho4d

coredata中的数据建模(包含许多子级的文件夹和文档等)

  •  0
  • nacho4d  · 技术社区  · 14 年前

    我已经使用过几次coredata,但是数据建模非常简单。这一次我应该执行以下操作:

    • 用户可以创建文档和文件夹(它们不必是真正的文件夹/目录)。
    • 文件夹可以包含文档或其他文件夹
    • 文件有:
      • 1题,
      • 1说明和
      • 8个孩子
    • 每个孩子也有一个头衔和描述,可以有8个孩子。 (可选)
    • 这可以是用户想要的任意多个级别(递归)。

    我不知道如何在coredata中表达这一点。有人能帮忙吗? 现在我想到:

    “子”实体,以“标题”“说明”作为属性,“子”作为关系(一对多)。 “file”实体,其中“isfolder”为布尔属性,“documents”为关系(一对多,指向“child”)。

    我不确定这是否很好地实现了coredata中的上述结构。 我走对了?在coredata中重新建模数据结构可能很痛苦(我听说过),所以我希望从一开始就有一个好的结构。我希望我能从你那里得到一些建议;)

    提前谢谢。

    1 回复  |  直到 14 年前
        1
  •  2
  •   TechZen    14 年前

    您可能需要这样的东西(伪代码):

    Folder{
        parent<<--(required,nullify)-->Folder.folders
        folders<--(optional,cascade)-->>Folder.parent
        documents<--(optional,cascade)-->>Document.folder
    }
    
    Document{
        title:string
        descriptionText:string
        parent<<--(optional,nullify)-->Document.children
        children<--(optional,cascade)-->>Document.parent
        folder<<--(optional,nullify)-->Folder.document
    }
    

    (警告词:不要将“描述”用作属性名。NSObjt有一个 description 方法,以便nsObject的每个子类响应 描述 消息。如果您有一个同名的属性访问器,它将导致各种各样的丑陋问题。)