2010-06-03 70 views
2

我有一個關於我想與CoreData一起使用的相當先進的DataModel的問題。使用CoreData的Xcode中的高級數據模型

在我詳細介紹我到目前爲止所做的事情之前,我會描述我想要做的事情。

我有一個留在一個房間,並有偏好設置的酒店客人名單。一旦準備就緒,用戶應該選擇一個訪客並查看數據,並且還應該能夠添加新的訪客,選擇房間(也由應用程序維護)並選擇他們的偏好(用戶也可以添加新的偏好)。客人可以沒有或有很多偏好。

所以這裏是我到目前爲止。我創建了3個實體: - 備有roomnumber - 首選項名稱爲 - GuestInfo與名稱 - >使用這些關係室(目的地客房)和首選項(目標偏好與「一對多關係」)現在

,我完成了所有這些並創建了託管對象類。到現在爲止還挺好。問題是我收到一些警告。

  1. GuestInfo.room - 關係不具有逆
  2. GuestInfo.prefs - 一對多的關係沒有逆:這是一個高級設置(沒有對象可以在多個目的地的具體關係)

這只是一個警告,我可以忽略?我的意思是,房間裏每個客人總是隻有一個房間號碼,但是在一個房間裏可以有更多的客人,所以不能在這裏設置任何反向關係。此外,對於偏好,每個客人可能沒有或更多偏好。

+0

任何希望看到你的模型的截圖?看到這個圖表會讓這個過程更容易一點。 – 2010-06-03 16:36:53

回答

4

在Objective-C警告中應該忽略從不。在處理核心數據時,這是雙重事實。在運行時將每個警告視爲錯誤。

至於逆關係,你應該總是逆向。如果您不這樣做,那麼性能將受到影響,數據完整性將面臨高風險。

1

這些警告可以忽略(請參閱question),但只需添加相反關係即可使Core Data快樂。將Room關係添加到GuestInfo,將一個關係添加到GuestInfo Preference,並確保選擇反向。我認爲這些是一對一的,因爲每個房間只有一個訪客信息。這可能會產生副作用,即當您將客房設置爲客人信息時,該客房中的任何其他客人信息將被刪除。如果這是不可取的,你可以使這種關係成爲多對一。

+0

這是個可怕的建議。警告,特別是反向關係警告,絕不應該被忽略。 – 2010-06-04 17:37:14

+0

我並不打算建議他忽略它們(這將是可怕的建議)。雖然重讀我的回答,但我可以看到,我看到它聽起來像我說的那樣。 「罐頭」的意圖是,「如果你需要錢,你可以搶劫一家銀行,但是......」有時候,文字只會迷失在文本中。 – 2010-06-08 06:40:29