2012-01-25 21 views
0

我有一個關於coredata的基礎設計的問題,使它成爲我的應用程序的未來證明!需要一個方向來設計Coredata模型

繼承人的情況下,讓我們考慮IM開發coredata模型來跟蹤身體質量指數(BMI),這僅僅是一個例子,它會在一個名爲實體列出:分類。

類別具有以下屬性:

  • 的NSString(字符串)標題(重量)
  • 的NSNumber(浮點)upperMax(100)*
  • 的NSNumber(浮點)lowerMax(40)*

*注意:這些上限和下限是完全假設的,根本沒有科學依據,我只是用它來舉例!啊哈..

另一個實體: 「跟蹤器」

  • 的NSDate的timeStamp
  • 的NSNumber進入

一對多的關係存在這裏 - Category<--->>Tracker

在這裏上升,一切都很好理解。用戶輸入插入追蹤器timeStamp並輸入值(當前記錄的重量),然後應用程序比較它的高於或低於或在(正常)類別中的預設值之間。

如果我添加另一個類別 - 身體質量指數(BMI)。體重指數比較體重和身高。

我可以很容易地在實體將其添加爲新的cateogry爲:

  • 名稱BMI
  • UpperMax 23.5
  • LowerMax 18.5

和用戶將添加一個比較Track項他們倆。

但我希望能夠增加體重和身高,而不是BMI指數它的自我,這創造了一個方案,其中用戶將輸入值兩個文本框。

最明顯的答案是添加在所謂的「高度」範疇另一個項目,但後來我不得不創建一個新的以涉及與BMI。

相反,我想知道一種新的方法來設計類的實體,使得Entry值可以由用戶指定。 例如。 (「重量」中的權重)=所需的文本框輸入是一個 eg2。 (「BMI」中的體重和身高)=所需的文本字段輸入爲TWO。

也許我應該創建一個新的實體?名稱爲「字段」並存儲類別,並在此新實體中指定所需字段的正常值數量。

它現在很模糊,希望你能明白我在問什麼。

從用戶角度來看: 我希望能夠在運行時本身在應用中添加「自定義」類別。就像創建一個「新」類別一樣,我將使用tableView中的「添加」按鈕將名稱和添加字段添加到類別中。

在BMI,我將添加兩個字段名稱: 1重量UpperMax/LowerMax等 2,身高等。

然後當我點擊「新Entrys跟蹤增長」兩個文本框應該出現基於Category.fields(關係)的計數。

這是正確的做法嗎?以及我應該如何將「類別」實體與「Entry」實體連接起來。我在中間某個地方得到了「Fields」實體

+1

如果我理解正確的,你正試圖權衡是否應使用明確規定coredata字段(實體)與創建一個表,你的選擇你通過表中的行定義你的字段?如果是這種情況,我會根據您計劃添加或更改字段定義的次數來回答。行更容易添加,修改和刪除,但可能有點難以處理。實際字段更加明確,可能更容易處理。 – Brain2000

+0

我希望能夠在運行時本身在應用程序中添加「自定義」類別。就像創建一個「新」類別一樣,我將使用tableView中的「添加」按鈕將名稱和添加字段添加到類別中。 在BMI,我將添加兩個字段名稱: 1重量UpperMax/LowerMax等 2,身高等。 後來,當我點擊「新Entrys跟蹤增長」兩個文本框應該出現基於計數Category.fields(關係)。 這是正確的方法嗎?以及我應該如何將「類別」實體與「Entry」實體連接起來。我在中間某處找到了「Fields」實體。 – user134611

+0

是的,你所描述的聽起來像是正確的路要走。要在運行時添加自定義類別,只需將行添加到類別表中。要鏈接它們,請在類別和條目表之間創建一個關係實體。然後,您擁有的每個條目對象都將具有關聯的類別。每個類別對象都有一個條目數組。那有意義嗎? – Brain2000

回答