2013-03-18 20 views
1

這是一個新手型問題,但我堅持如何在iOS中的核心數據上下文中執行此操作。何時使用可變形數據類型與關係核心數據

我有一個數據類型我想使用稱爲度量,它由一個單位(字符串)和一個值(雙)組成。我有另一個類PhysicalAttributes,它具有許多屬性,其中一些屬於原始數據類型,另一些(大多數)屬於Measurement類型。

在覈心數據中,我創建了一個名爲Measurement的實體和一個名爲PhysicalAttributes的實體。

如果我不使用核心數據,我想有一個類,如:

@interface PhysicalAttributes : NSObject 

@property (nonatomic) Measurement *height ; 
@property (nonatomic) Measurement *weight ; 

// etc. 

@end 

但我不能確定是否在覈心數據我應該使用關係稱爲身高,體重等,或使用變形數據以這種方式鍵入並建模。由於Measurement實際上是一種數據類型,因此稱它爲關係並不合適。

我可以找到關於使用核心數據的所有示例並沒有給出類似上述內容的示例。

任何幫助/指針表示讚賞!

+0

看看蘋果的示例代碼: - http://developer.apple.com/library/ios/#samplecode/iPhoneCoreDataRecipes/Introduction/Intro.html – Leena 2013-03-18 05:11:29

回答

0

你真的需要測量?也許作爲一個抽象類或協議,但你可能想要Weight和Height類,否則,Measurement內可能的類型會變得非常難看。

我同意你的看法,讓你感覺髒兮兮的使用這種關係,但另一種看待它的方式是這些測量可能在某個時間點被捕獲,所以你可以添加一個時間戳也一樣。

Martin Fowler的書Analysis Patterns對此進行了長時間的討論,並且在做這些事情的課程(這是正確的)方面進行了討論。

+0

好點,但它仍然存在問題。如果有Weight,Height等的類,並且我希望它們在聚合類(PhysicalAttributes)中,我仍然要面對使用可變形數據類型或使用關係。所以,最初的問題仍然是用「核心數據」對這種模式進行建模的「正確」方式。謝謝! – 2013-03-18 14:22:16

+0

爲什麼你想要他們在一個聚合?我看不出問題的立場。如果您創建了一個用於分組某些屬性的類,那麼基類(例如Patient)與PhysicalAttributes的比例爲1:1,並且包含1:1的重量和高度。 – Rob 2013-03-18 17:22:54

+0

如果你按照我提到的時間模型,你會在不同的時間點記錄身高和體重,然後你可能會在currentWeight/Height的類別中添加一個方法來獲取最近的讀數。 – Rob 2013-03-18 17:23:48