2011-09-02 34 views
4

我有一個實體圖書館,其中有兩本圖書清單。圖書館維護這兩本書的清單很重要。在我的圖書館實體,我有一個從每個列表到我的圖書實體的一對多關係。同樣,書有一個關係「圖書館」。我在從數據庫中刪除數據時遇到了一些問題,並且我讀到應該建立反向關係來幫助完善數據。然而,在這種情況下,書會希望能夠與我的圖書館實體上的每個列表建立反向關係。我怎樣才能做到這一點?核心數據中的多重反比關係

我天真的第一個想法是實現兩個列表的關係。所以,一本書有關係「libraryForList1」和「libraryForList2」,以便它可以爲每個關係的逆。我永遠不必真的引用這些屬性,因爲根據核心數據規範,如果我將一本書添加到某個庫列表中,它會自動將庫設置爲書籍所有者。

+0

見http://stackoverflow.com/questions/4985075/core-data-inverse-relationship-for-two-relationships-with-same-type/4989413,等等。如果您的圖書館自己的書有兩種不同的方式,那麼本書可以屬於兩種不同的方式出庫,都需要單獨建模。 – rgeorge

回答

5

你的「天真的第一想法」基本上是正確的:如果你的圖書館實體有兩個一到多與書籍的關係(爲清楚起見我們稱之爲關係ownedBooksborrowedBooks),那麼你的書的實體應該有一反關係(owningLibraryborrowingLibrary),然後核心數據將使您的生活更輕鬆。

您可能還需要考慮這些關係刪除規則:如果一本書是爲某些原因被刪除,爲owningLibraryborrowingLibrary刪除規則可能會是抵消 - 也就是說,這兩個庫將消除從他們的名單預訂。刪除仍然有書籍的圖書館似乎是一個壞主意,所以也許對ownedBooksborrowedBooks刪除規則應該是拒絕:庫不能被刪除,直到書都是佔(從庫中移除)。

+0

感謝您的肯定,我在正確的軌道上 – JPC