DEV Community

GoyesDev
GoyesDev

Posted on

[CoreData] Reglas de borrado

En Core Data, las reglas de borrado determinan qué sucede con los objetos relacionados cuando se elimina un objeto de tu modelo. Se aplican en las relaciones entre entidades y controlan la consistencia de los datos.

Hay cuatro tipos de reglas de borrado:

1. Nullify

Cuando se borra un objeto, Core Data no elimina los objetos relacionados. Simplemente pone en nil (o vacío) las referencias de la relación.

Ejemplo: Tengo una relación Departamento ->> Empleado. Si elimino un Departamento, los Empleado que apuntaban a él ahora quedan con departamento = nil.

En caso de que la relación inversa sea uno-a-varios, eliminar una instancia no significa que en el otro extremo vamos a tener un nulo dentro de un arreglo sino que CoreData se encarga de mantener consistencia automática en los datos, lo que significa que simplemente va a eliminar la referencia del arreglo.

Ejemplo: Tengo la misma relación Departamento ->> Empleado. Si elimino un Empleado, se elimina la referencia hacia este objeto de la colección departamento.empleados.

2. Cascade

Cuando borramos un objeto, también se eliminan automáticamente todos los objetos relacionados.

Ejemplo: Departamento ->> Empleado (un departamento tiene muchos empleados). Si eliminamos el Departamento, se borran también todos sus Empleado.

3. Deny

Impide que se elimine un objeto si todavía tiene relaciones con otros objetos. Sirve para mantener integridad y evitar borrados accidentales.

Ejemplo: Si intento borrar un Departamento que aún tiene Empleado, Core Data no lo permite hasta que yo elimine o mueva esos Empleado.

4. No Action

No pasa nada automáticamente. Core Data no hace limpieza ni pone en nil las referencias. Esto puede causar errores si se accede a esos punteros.

Ejemplo: Si borro un Departamento, los Empleado seguirán apuntando a un objeto que ya no existe.

Top comments (0)