2013-07-19 54 views
1

我正在爲核心數據中的數據設計體系結構。我的問題:我有一個List對象。在我開始使用核心數據之前,我將它定義爲NSObject的一個子類,但現在我正在使用核心數據,NSManagedObject等。我想知道是否應該分解我的List對象的組件,就像在此introductory tutorial核心數據。核心數據中分離單個對象模型的組件

本質上說,List對象由一個

NSString uniqueID 
NSString name 
BOOL completed 
BOOL notifyMe 
NSDate notifyDate 
NSDate creationDate 

這似乎是一個大量的數據用於鑑於NSManagedObject逼着你一下子加載整個對象的單個對象。是否有意義,使List對象之間的一個一對一的關係,說一個新的對象稱爲ListDetails,其中List然後變成

NSString uniqueID 
NSString name 
BOOL completed 

ListDetails是提前

BOOL notifyMe 
NSDate notifyDate 
NSDate creationDate 

謝謝爲您的建議!

附加警告:

每個List也有稱爲ListItemEntity一個一對多的關係。換句話說,目前我有兩個Entities,一個ListListItem。如果我將List分解爲兩個部分(ListListDetails),那麼我的一對多關係仍然會與List

回答

1

除非您確信該名稱或uniqueID將變得超長,否則即使具有六個屬性(特別是當兩個屬於BOOL s時),內存佔用量也會非常小。

如果您發現需要抓取大量List實體但只需要幾個屬性的地方,您可以設置一個提取請求,將其返回類型設置爲字典並指定所需的屬性。例如,您可以抓取所有不完整的實體,需要通知,並且日期已經通過複合謂詞傳遞,並且只需在字典中返回名稱和uniqueID。

如果你確實分手了,那麼List很可能是與ListItemListDetails有關係的中心。

如果通知日期不是用戶需要始終查看的內容,那麼也可以將其存儲爲NSTimeInterval,它比NSDate輕了一點,並且很容易檢查它是否也已通過。