Dziedziczenie danych podstawowych a brak dziedziczenia

Mam pewne problemy z podstawowymi danymi, więc mam nadzieję, że ktoś będzie mógł mi pomóc :)

Pierwszy problem, mam model danych, który wygląda tak:

 Entity P (A) <----> Entity R
  / | \
 / /\ \ 
/ / | \ \
C D E F G

Wszystkie moje jednostki dziedziczą po tej samej jednostce „P”, ponieważ potrzebują wspólnego atrybutu i wspólnego związku („A” i „R”)

Problem, który otrzymuję, polega na tym, że podstawowe dane wykorzystują generowanie tylko jednej tabeli sqlite dla wszystkich jednostek podczas korzystania z dziedziczenia. W moim przypadku oznacza to, że moja baza danych będzie miała tylko jedną tabelę dla wszystkich danych. Zrobiłem kilka badań i zobaczyłem, że stwarza problemy z wydajnością (ponadto wszystkie atrybuty moich jednostek są transjentami, a podczas woliZapisz ich wartości są agregowane + zaszyfrowane w jednym NSData przechowywanym w „A”, więc nie będę mógł użyć predykatu do filtrowania i ulepszyć występy SELECT). Postanowiłem więc usunąć „P” i dodać „A” do „C”, „D” ..., „G”. Problem polega na „R”, ponieważ wcześniej miałem tylko jedną odwrotną zależność, a teraz muszę go utworzyć za każdym razem, gdy tworzę nowy rodzaj encji. Chciałbym więc usunąć wszystkie odwrotne relacje, czy to możliwe? Czasami muszę utworzyć obiekt zarządzany z kontekstem zerowym, a później wstawię go do kontekstu, prawdopodobnie dlatego odwrotna relacja nie jest automatycznie ustawiana przez dane podstawowe, jeśli ustawię nie-odwrotność przed wstawieniem w MOC? W każdym razie nigdy nie potrzebuję odwrotności, więc czy mogę ich uniknąć, nawet jeśli otrzymam ostrzeżenie?

Drugi problem, w określonych sytuacjach muszę utworzyć nowe „R” i przypisać je do „C”, „D”, „G” podczas zapisywania MOC. Chciałbym więc użyć willSave, ale nie wiem, czy utworzona jednostka zostanie zapisana. Jeśli MOC wykonuje prostą pętlę nad „wstawionymi obiektami” / „zaktualizowanymi obiektami” / „usuniętymi obiektami”, a dla każdego obiektu, który wywołuje, będzie zachowywał, zapisuje, a następnie wywołuje didSave, oznacza to, że zamierzam zmodyfikować tablicę na co iteruje, a potem nie powinno się rozbić?

questionAnswers(2)

yourAnswerToTheQuestion