我正在嘗試爲iOS應用程序的簡單數據模型實現持久性。這是一種數據庫,但有少量數據(200-500個條目)。我認爲核心數據在這裏沒有選擇。用各種關係保存應用程序數據的最佳方式
的數據模型看起來在某種程度上是這樣的(我目前使用NSDictionary
與NSArray
):
// Note: NSStrings and NSNumbers are simplified for readability (no @)
@{ "Companys" : @[
@{ "ID" : 1,
"Company name" : "ABC Inc.",
"Website" : "http://www.abc.com"
},
@{ "ID" : 2,
"Company name" : "XYZ Inc.",
"Website" : "http://www.xyz.com"
},
@{ "ID" : 3,
"Company name" : "123 Inc.",
"Website" : "http://www.123.net"
},
// ... about 90 companies
],
"Employees": @[
@{ "ID" : 1,
"First name" : "John",
"Last name" : "Doe"
},
@{ "ID" : 2,
"First name" : "David",
"Last name" : "Green"
},
// ... about 500 employees
]
}
現在我面對的關係的問題(這名員工在公司工作)。我想添加和NSArray
公司NSDictionary
持有該公司的僱員的ID。但不知何故,我擔心業績不佳,因爲每次我想要獲得員工工作的公司時,我都需要列舉所有公司。
有沒有更好的解決方案來保存這種數據?我想使用SQLite或核心數據會的方式來過度設計,並會花費太多的開發時間......
編輯: 請不要在您的意見和建議的答案核心數據。核心數據不是一個選項,因爲數據是非常靜態的,只需很少的更改,並且不需要排序。此外,iCloud同步可能是一個選項。核心數據在使用iCloud時有很多缺陷...
imho使用sqlite,即使你以前從未使用過它,如果試圖基於數組和字典實現自己的「高性能」關係模型,它仍然更容易。 – peko
您也可以使用存儲在您的應用包或沙箱中的plists。你可以在這裏找到http://developer.apple.com/library/ios/#documentation/general/Reference/InfoPlistKeyReference/Articles/AboutInformationPropertyListFiles.html。 – Engnyl
當你編寫完自己的持久化模型(無bug)時,你可以學會正確地管理CoreData,放入你的簡歷並準備你的項目進化和擴展。 200到500個實體是使用CoreData的強有力的理由。不要太提及所有相關的內容(提取結果控制器,通知ecc ...)。 – Leonardo