我使用xcode和核心數據創建數據模型。這是一個對象圖,而不是實體關係模型,所以我有繼承和多對多關係。我該如何建模某些實例無法修改?
這是我的問題: 我有一個名爲Category的類或實體。某些類別是由應用創建的,不能由用戶刪除或修改。用戶可以創建自己的類別。
經過思考,我找到了4種方法來模擬這個。看到圖片:
我想最實際的解決方案只是把一個標誌,isSystemCategory,但我不知道什麼是從一個造型點的最佳解決方案。我猜第一個。一個稱爲Category的抽象類和2個後代,可編輯和可刪除的UserCategory,以及不可修改的SystemCategory,用戶不能刪除它或修改。請注意,後代不會添加任何屬性,關係或任何更改,所以,這就是我的問題的原因。這對建模者來說是否正確?
我想知道你的想法。謝謝。
很棒的回覆。 「創建單獨的子類型將防止一些討厭的條件邏輯」,這正是我所想的。但是,我想知道是否使用核心數據(第一種情況下的類別是抽象類/實體),我可以發送如下請求:「屬於此類別的所有食譜(即,用戶或系統類別)」和相反,「屬於用戶創建的類別的食譜」。我認爲是可能的,但不確定。非常感謝。 – Ricardo 2012-04-11 12:29:11
不客氣。我不熟悉Core Data。然而,如果你不能要求(a)所有系統類別(系統類別的實例),(b)所有用戶類別(用戶類別的實例)和(c)所有類別(實例類別)。類別可能是抽象的 - 但在運行時仍然有它的實例(每個{User | System}類別實例同時是一個Category實例)。心連心。 – sfinnie 2012-04-11 20:39:22