Modelar una relación de uno a varios en Core Data para iOS

Tengo dos entidades: paciente y punto de control. El paciente tiene attributes como date de nacimiento, nombre, ID, etc. El punto de control tiene attributes como dateRecorded, altura, peso, etc.

Probablemente tenga la idea: quiero que haya un grupo de pacientes, y luego cada paciente puede tener puntos de control asociados con ese paciente.

En ambas entidades, ¿cómo debería configurar la configuration? La configuration es: Ventana de Relación

Miré la documentation para esto, y aún estaba confundido. Creo que lo que quiero es una relación de uno a muchos (para el paciente), pero entonces no estoy seguro de cómo establecer las inversiones para ninguno de ellos, o la regla de eliminación y las otras cosas. ¡¡GRACIAS!!

Acabo de comenzar con Core Data esta semana. Gran pregunta

Relaciones:

Dado que un paciente puede tener muchos puntos de control, la relación entre el Patient to Checkpoint es una relación de One to Many . El concepto de una "relación inversa" es esencialmente esto: tienes una relación que va de un lado (paciente al punto de control) – ahora adelante y míralo desde el inverso , la perspectiva del punto de control. Un punto de control puede aplicarse solo a un solo paciente. Por lo tanto, la relación Checkpoint to Patient es una relación de One to One .

Relaciones inversas:

Para manejar la relación inversa, simplemente cree cada relación, ignorando lo inverso. Luego, después de que tenga la relación de cada object, avance y defina el inverso como la relación en la otra entidad.

En otras palabras, una relación apunta a otra entidad o grupo de entidades. Una relación inversa apunta a una relación en otra entidad.

Eliminar reglas:

En lo que respecta a las reglas de eliminación, es bastante simple. Al intentar eliminar un paciente que tiene puntos de control …

  • Denegar: Core Data no le permitirá eliminar al paciente.
  • Cascade: Core Data eliminará la Entidad (Paciente), así como también las relaciones en cascada y la eliminación de esos objects. (En otras palabras, Core Data borrará también los objects Checkpoint).
  • Anular: Core Data eliminará al paciente pero primero eliminará la relación. El punto de control permanecerá intacto.

Para la entidad del paciente puede querer denegar o cascada, dependiendo de cómo desea administrar sus datos. Según su caso de uso, probablemente no desee anular, ya que los puntos de control dependen de las entidades del paciente.

Desea anular el punto de control, ya que la cascada le impediría eliminar un punto de control sin eliminar a todo el paciente, y Deny forzaría efectivamente el mismo.

Basado en el escenario mentinoed, parece una relación de uno a muchos entre las tablas de pacientes y puntos de control.

Ahora agregue una relación de "Paciente" a "Punto de control", y también establezca el inverso entre las tablas.

Además, establezca la regla de eliminación para ambas relaciones en "cascada". Esto significa que si borra un object con el Paciente, la conetworkingata Conetworkingata también eliminará el object asociado.