Per favore, spiegami, perché i dati di base negano di creare la struttura mostrata di seguito.CoreData: vincoli di unicità e relazione inversa obbligatoria a uno
|Employee | |Department|
|------ | <<--(opt)-------inverse-------(non_opt)--> |----------|
|id (un) | |name (un) |
|fullName |
* un - unique, opt - optional
In alcuni reparti zero o più dipendenti possono lavorare ma ogni dipendente deve lavorare in uno solo in un reparto. Ad esempio, è uno schema ovvio per MySql. Per i dati di base ho creato una relazione inversa per evitare errori di coerenza. Ma Core Data ha la sua visione e questo è quello che dice di me:
error: Misconfigured Entity: Entity Department cannot have uniqueness constraints and to-one mandatory inverse relationship Employee.department
Ho già trovato alcune soluzioni sospetti (rendere tutti i rapporti opzionale, rimuovere unico da Department.name e verificarle "programmazione", rimuovere relazioni inverse), ma voglio capire, dove sbaglio o se no - cosa sta cercando di dire Apple con questa strana logica?
Dovrebbe essere correlato a 'con vincoli univoci, NSMergeByPropertyObjectTrumpMergePolicy sovrascrive tutti gli attributi, non solo il relationships.', vedere qui: http://dorianroy.com/blog/2015/09/how- to-implement-unique-constraints-in-core-data-with-ios-9/ – bteapot
Grazie per la risposta, ma penso che non sia il mio caso. 1) Non uso questa politica, tutti i vincoli controllano gli errori generano eccezioni e 2) questo è un errore in fase di compilazione, i dati di base "non mi piacciono" il mio schema di dati e l'applicazione non possono costruire con esso. – Anton
I conflitti di vincoli univoci sono come conflitti di unione, non sono indici univoci SQL – malhal