MySQL - ayuda,por favor

 
Vista:

ayuda,por favor

Publicado por Fidel (1 intervención) el 18/06/2009 19:24:56
hola..no se si este foro es el sitio mas adecuado para exponer esto,pero tengo un trabajo que hacer y no soy capaz por mas que me rompo la cabeza de encontrar la manera.El asunto es el siguiente.

Tengo una base de datos en la que dos entidades,medicos y pacientes,se relacionan por medio de otra,ingresos en hospital.

Un medico atiende ingresos,atiende tiene el codigo del medico como clave foranea y el codigo del ingreso como clave principal.A la vez,un paciente Realiza un ingreso,en realiza el codigo de ingreso es clave principal y el del paciente clave foranea.

Dicho esto,necesito borrar los medicos que hayan atendido menor numero de ingresos,o a mayores,borrar solo los que no hayan atendido ninguno (en el caso de que exista algun medico que no haya atendido ningun ingreso) o,en caso contrario,borrar los que hayan atendido menor numero de ingresos.Muchas gracias y un saludo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:ayuda,por favor

Publicado por Gonzalo GC (339 intervenciones) el 20/06/2009 14:30:52
Esto lo has planteado tu mismo en otro foro de MySQL, y yo mismo te di una respuesta (que evidentemente no te satifizo): Tienes que ver cómo resuelves el problema de la integridad referencial:
Si borras IDs de médicos con pocas consultas, tendrás problemas de integridad con las claves que aparezcan en los registros de las consultas atendidas. MySQL no te dejará hacerlo, porque una FK no puede apuntar a NULL, y es lo que pasará al eliminar el médico.
Por otro lado, si le pones un ON CASCADE DELETE, perderás los registros de las consultas.
La única solución práctica, paa no perder datos, es construir otra tabla, histórica, donde almacenes todos los datos combinados (paciente + historia + consulta) antes de eliminar al médico y las consultas realizadas...

Cualquier otra solución chocará con el problema de integridad de claves.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar