| |||
| ON DELETE ¿Qué? Hola, tengo una duda y es que ya me esta matando.. A ver tengo una BBDD en MySQL y tengo una tabla padre (usuario) y una tabla hijo (acciones) con una clave ajena a la tabla padre, en esta clave tenía puesto un ON DELETE NO ACTION y ON UPDATE CASCADE, pensando que "NO ACTION" no ejecutaba ninguna acción sobre la fila de la tabla hijo, pero lo que no permite es eliminar la fila de la tabla padre si hay referencias desde la tabla hijo. Mirando el manual de MySQL ha visto que puedo poner CASCADE, RESTRICT, NO ACTION, SET NULL Entonces con NO ACTION y RESTRICT obtengo el mismo resultado entonces queda CASCADE, pero la intención es no perder ese registro de las acciones que hace un usuario aun este este eliminado, entonces podría ponerlo a NULL, pero en una de las tablas hijos ese campo es clave ajena pero también forma parte de la clave primaria con lo cual no puede valer null. ¿A alguien se le ocurre algo? Gracias de ante mano y Saludos a todos. |
| |||
| Respuesta: ON DELETE ¿Qué? Cuando te refieres a una fecha de baja te refieres al usuario ¿verdad? quedando registrado este en la tabla hijo no como null si no con el id del usuario, pero quedando este sin utilidad en el sistema. Muchas gracias gnzsoloyo!! |
| ||||
| Respuesta: ON DELETE ¿Qué? No exactamente. Agregar el id del usuario es una buena idea, para saber quién lo dio de baja. Eso también se hace. Pero si te estoy diciendo "fecha_baja" como nombre de campo, es exactamente eso: La fecha en que se dio de baja. Saber la fecha en que un artículo se dio de baja es muy importante para realizar reportes discriminados por fecha. De lo contrario el dato desaparecería de todas las consultas, y luego las cuentas no cierran. ¿Ahora se entiende?
__________________ ¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente... "El problema es la interfase silla-teclado." (Gillermo Luque) |