Proszę, wyjaśnij mi, dlaczego dane podstawowe odmawiają tworzenia struktury pokazanej poniżej.CoreData: ograniczenia unikalności i jedna obowiązkowa odwrotna relacja
|Employee | |Department|
|------ | <<--(opt)-------inverse-------(non_opt)--> |----------|
|id (un) | |name (un) |
|fullName |
* un - unique, opt - optional
W pewnym dziale może pracować zero lub więcej pracowników, ale każdy pracownik musi pracować w jednym i tylko jednym dziale. Jest to oczywisty schemat dla MySql, na przykład. Dla danych podstawowych stworzyłem odwrotną zależność, aby uniknąć błędów konsystencji. Ale Rdzeń danych ma swoją własną wizję i to jest to, co mówi do mnie:
error: Misconfigured Entity: Entity Department cannot have uniqueness constraints and to-one mandatory inverse relationship Employee.department
już znaleźć jakieś podejrzane rozwiązania sprawiają, że wszystkie stosunki (opcjonalne, usuwają wyjątkowy z Department.name i sprawdź to „programowo”, usunąć odwrotne relacje), ale chcę zrozumieć, gdzie popełniam błąd, a jeśli nie - co Apple próbuje powiedzieć z tą dziwną logiką?
To powinno być związane z 'ze szczególnymi ograniczeniami, NSMergeByPropertyObjectTrumpMergePolicy nadpisuje wszystkie atrybuty, tylko nie ten relationships.', zobacz tutaj: http://dorianroy.com/blog/2015/09/how- do implementacji unikalnych ograniczeń w rdzeniu danych za pomocą ios-9/ – bteapot
Dziękuję za odpowiedź, ale myślę, że to nie moja sprawa. 1) Nie korzystam z tej zasady, wszystkie błędy sprawdzania ograniczeń zgłaszają wyjątki i 2) jest to błąd podczas kompilacji, dane podstawowe "nie lubią" mojego schematu danych, a aplikacja nie może go skompilować. – Anton
Konflikty unikalnych ograniczeń są podobne do konfliktów scalania, nie są to unikalne indeksy SQL – malhal