La documentación de Apple de Relationship Delete Rules es simple y clara. Pero solo habla de Relación uno a muchos (Eliminar reglas para One-to-One relación son fáciles de inferir). No está claro lo que significan estas reglas para la relación Many-to-One. Así que vamos a aclararlos aquí.Eliminar reglas para la relación de muchos a uno
Utilizamos el empleado-Departamento ejemplo utilizado en la documentación de Apple. Aunque las implicaciones de la vida real pueden ser ridículas de estas reglas que se aplican a la relación Empleados-Departamento, nosotros, como programadores, solo estamos hablando de sus implicaciones lógicas aquí.
Denegar
Si hay un objeto en el destino relación, entonces el objeto de origen no se puede eliminar.Por ejemplo, si desea eliminar un empleado, sin importar si todavía hay otros empleados en su departamento, debe asegurarse de que el departamento se elimine por primera vez, de lo contrario, el empleado no puede ser eliminado.
Nulidad
Retire el objeto de origen de la relación inversa del objeto en el destino. (Consulte la explicación concisa de @ bshirley)Por ejemplo, si elimina a un empleado, quítelo de la relación de empleados de su departamento. Esto solo tiene sentido si la cantidad de empleados restantes del departamento es mayor que el recuento mínimo requerido, o si se asegura de que agrega nuevos empleados para el departamento antes de la siguiente operación de salvar.
[Pregunta: Si es el último empleado, será empleados del departamento relación se convierta en conjunto vacío o nulo?]
(Answer @TechZen:. A a-muchos relación siempre devuelve un objeto de conjunto Nunca es nula. Si no hay objetos en el otro lado de la relación, el conjunto está vacío.)Cascade eliminar el objeto en el destino de la relación.
Por ejemplo, si elimina un empleado, elimine su departamento al mismo tiempo, incluso si todavía hay otros empleados en el departamento.
(Uso Caveat: Por lo general provoca una "una cadena de margarita de deleciones en toda la gráfico de objetos", como se describe por @TechZen en su ejemplo.)
No Acción
No hacer nada al objeto en el destino de la relación.Por ejemplo, si elimina un empleado, abandone su departamento tal como está, incluso si aún cree que es el propietario de ese empleado.
Los significados de las normas de supresión de muchos-a-muchos relación se puede deducir de aquí.
¿Por qué está pensando este ejemplo desde la perspectiva del empleado ... si elimina un empleado, elimine su departamento al mismo tiempo, incluso si todavía hay otros empleados en el departamento ... debería ser al revés ..... si elimina un departamento, elimine a todos los empleados al mismo tiempo, incluso si todavía hay empleados en el departamento –