Я только начал работать с Core Data на этой неделе.Большой вопрос!
Отношения:
Поскольку у одного пациента может быть много контрольных точек, отношение Patient to Checkpoint
является отношением One to Many
.Концепция «обратных отношений», по сути, такова: у вас есть отношения, идущие в одном направлении (от пациента к контрольной точке) - теперь давайте посмотрим на это с точки зрения обратного , точки зрения контрольной точки.Контрольная точка может применяться только к одному пациенту.Следовательно, отношение Checkpoint to Patient
является отношением One to One
.
Обратные отношения:
Чтобы обработать обратные отношения, просто создайте каждое отношение, игнорируя обратные.Затем, после того, как у вас есть отношение к каждому объекту, продолжайте и определите обратное как отношение к другому объекту.
Другими словами, отношение указывает на другую сущность или группу сущностей.Отношение обратное указывает на отношение на другом объекте.
Удалить правила:
Что касается правил удаления, то этодовольно простой.При попытке удалить пациента с контрольными точками ...
- Запретить: основные данные не позволят вам удалить пациента.
- Каскад: Базовые данные будут удалять сущность (пациента), а также каскадно перемещаться по отношениям и удалять эти объекты.(Другими словами, Core Data также удалит объекты Checkpoint.)
- Nullify: Core Data удалит пациента, но сначала удалит связь.Контрольная точка останется нетронутой.
Для объекта «Пациент» может потребоваться либо запрет, либо каскад, в зависимости от того, как вы хотите управлять своими данными.Исходя из вашего варианта использования, вы, вероятно, не хотите обнулять, поскольку контрольные точки зависят от сущностей пациента.
Вы хотите обнулить контрольную точку, поскольку каскад не позволит вам удалить контрольную точку, не удаляя всего пациента, и Deny фактически принудительно вызовет то же самое.