CoreData 與 SQLite 比較

CoreData.framework :iOS中提供了對原始SQLite數(shù)據(jù)庫API訪問的封裝,通過這個framework來管理數(shù)據(jù)緩存和持久數(shù)據(jù)要比使用SQL語句操作SQLite數(shù)據(jù)庫簡單和方便許多。

機制:通過framework來存儲和查詢數(shù)據(jù)只需要使用framework提供的類就可以,你可以完全使用對象的形式來管理你的數(shù)據(jù)以及數(shù)據(jù)之間的關(guān)系,framework已經(jīng)很好地將數(shù)據(jù)庫表和字段封裝成了對象和屬性,表之間的一對多、多對多關(guān)系則封裝成了對象之間的包含關(guān)系.

通過 relationship 來表示:

一對多時:設(shè)置為 properties 項選中 Optional, Plural 選項 To-Many Relationship 選中;

多對一反向關(guān)系時:properties 項選中 Optional,Count 項選中Minimun 和 Maximun 并分別設(shè)置其值為1;

Core Data 特點:

1)Core Data的強大之處就在于這種關(guān)系可以在一個對象更新時,其關(guān)聯(lián)的對象也會隨著更新,相當于你更新一張表的時候,其關(guān)聯(lián)的其他表也會隨著更新。

2)Core Data的另外一個特點就是提供了更簡單的性能管理機制,例如,使用NSFetchedResultsController類,你不用使用SQL的Limit而是使用NSFetchRequest類的setFetchBatchSize()就可以限制查詢記錄的總數(shù),而NSFetchedResultsController類神奇的地方在于需要獲取更多記錄的時候,這個類會自動更新其緩存。

3)對于多表查詢上相對來說,CoreData沒有 SQL 直觀,但CoreData的功能還是可以完成相關(guān)操作的。

但是對于類似外連接,左連接等操作,在CoreData中就顯得無力。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內(nèi)容