2016-05-31 42 views
7

請解釋我爲什麼核心數據拒絕創建如下所示的結構。核心數據:唯一性約束和一對一強制反比關係

|Employee |           |Department| 
    |------ | <<--(opt)-------inverse-------(non_opt)--> |----------| 
    |id (un) |           |name (un) | 
    |fullName | 

    * un - unique, opt - optional 

在一些部門零名或更多的員工可以工作,但每位員工必須工作在一個和唯一的一個部門。例如,MySql顯然是一個模式。對於核心數據,我做了反向關係以避免一致性錯誤。但是,核心數據有自己的願景,這就是它說我:

error: Misconfigured Entity: Entity Department cannot have uniqueness constraints and to-one mandatory inverse relationship Employee.department

我已經發現了一些可疑的解決方案(使所有關係可選,從Department.name刪除獨特,並檢查「程序」,刪除反向關係),但我想明白,我犯了什麼錯誤,或者如果不是 - 蘋果試圖用這種奇怪的邏輯來表達什麼?

+1

它應該涉及到'具有唯一約束,NSMergeByPropertyObjectTrumpMergePolicy覆蓋所有的屬性,只是沒有relationships.',在這裏看到:http://dorianroy.com/blog/2015/09/how- to-implement -internal-constraint-in-core-data-with-ios-9/ – bteapot

+2

謝謝你的回覆,但是我認爲這不是我的情況。 1)我不使用這個策略,所有的約束檢查錯誤都會拋出異常,2)這是編譯時錯誤,核心數據「不喜歡」我的數據模式和應用程序無法使用它構建。 – Anton

+0

唯一約束衝突就像合併衝突,它們不是SQL唯一索引 – malhal

回答