2010-08-03 24 views
0

我已經使用了CoreData幾次,但數據建模非常簡單。這次我應該執行以下操作:CoreData中的數據建模,(有很多孩子的文件夾和文檔等)

  • 用戶可以創建文檔和文件夾(它們不一定是真正的文件夾/目錄)。
  • 文件夾可以包含文件或其他文件夾
  • 文件有:
    • 1標題,
    • 1描述和
    • 8個孩子
  • 每個孩子也有一個標題和描述並可能有8個孩子 (可選)
  • 這可能是多個級別(遞歸)如用戶所期望的那樣。

我不知道如何在CoreData中表達這一點。有人可以在這裏舉手嗎? 現在我想到:

「兒童」實體與「標題」「描述」作爲屬性和「兒童」作爲關係(一對多)。 「文件」實體與「IsFolder」作爲布爾屬性和「文檔」作爲關係(一對多,指向「孩子」)

我不確定這是否很好地實現了CoreData中的上述結構。 我在正確的道路上?在CoreData中重新建模數據結構可能會很痛苦(我聽說過),所以我想從一開始就有一個好的結構。我希望我能得到你的一些建議;)

在此先感謝。

回答

2

你可能想是這樣的(僞):

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 
} 

(字警告:千萬不要使用「說明」作爲屬性名NSObject的有description方法,以便NSObject中的每個子響應到description消息,如果你有一個同名的屬性訪問器,將導致各種難看的問題。)

+0

我正在處理類似的問題。我想知道爲什麼你的Document對象需要孩子和父母?我認爲該文件夾將處理這些關係。 – 2011-04-17 03:47:08

+0

@nevan - 這是在父郵件的設計要求。顯然,他不是僅僅建模一個簡單的文件系統。出於某種原因,他的文件可以有兒童文件。我只是提供了符合要求的設計。您的要求可能會有所不同,但邏輯會類似。 – TechZen 2011-04-18 18:08:04

相關問題